Browse Source

jme updated

pull/1/head
Dibya Malla 4 years ago
parent
commit
dcd33ca155
  1. 14
      GME Remit.xcodeproj/project.pbxproj
  2. 16
      GME Remit/APIs/Router/APIRouter.swift
  3. 2
      GME Remit/APIs/UrlManager.swift
  4. 2
      GME Remit/Extensions/UIViewController+Ext.swift
  5. 16
      GME Remit/Modules/BiometricAuthModules/BiometricAuthentication/User Interface/View/BiometricAuthentication.storyboard
  6. 17
      GME Remit/Modules/ExchangeRates/User Interface/View/ExchangeRates.storyboard
  7. 14
      GME Remit/Modules/Home/User Interface/View/Home.storyboard
  8. 10
      GME Remit/Modules/LauncherScreen/User Interface/View/LauncherScreen.storyboard
  9. 4
      GME Remit/Modules/Login/User Interface/View/Login.storyboard
  10. 18
      GME Remit/Modules/Profile/Profile.storyboard
  11. 1
      GME Remit/Modules/RegisterModules/ExistingUserRegistration/UserAccessRequest/Application Logic/Service/ExistingUserRegistrationServiceType.swift
  12. 2
      GME Remit/Modules/RegisterModules/ExistingUserRegistration/UserAccessRequest/User Interface/View/ExistingUserRegistration.storyboard
  13. 2
      GME Remit/Modules/RegisterModules/ExistingUserRegistration/UserRegistration/Application Logic/Interactor/UserRegistrationInteractor.swift
  14. 15
      GME Remit/Modules/RegisterModules/ExistingUserRegistration/UserRegistration/User Interface/View/UserRegistration.storyboard
  15. 8
      GME Remit/Modules/RegisterModules/ExistingUserRegistration/UserRegistration/User Interface/View/UserRegistrationViewController.swift
  16. 2
      GME Remit/Modules/RegisterModules/NewUserRegister/Application Logic/Interactor/NewUserRegisterInteractor.swift
  17. 1
      GME Remit/Modules/RegisterModules/NewUserRegister/Module Interface/NewUserRegisterModuleInterface.swift
  18. 5
      GME Remit/Modules/RegisterModules/NewUserRegister/User Interface/Presenter/NewUserRegisterPresenter.swift
  19. 11
      GME Remit/Modules/RegisterModules/NewUserRegister/User Interface/View/NewUserRegister.storyboard
  20. 5
      GME Remit/Modules/RegisterModules/NewUserRegister/User Interface/View/NewUserRegisterViewController.swift
  21. 7
      GME Remit/Modules/RegisterModules/NewUserRegister/User Interface/Wireframe/NewUserRegisterWireframe.swift
  22. 1
      GME Remit/Modules/RegisterModules/NewUserRegister/User Interface/Wireframe/NewUserRegisterWireframeInput.swift
  23. 2
      GME Remit/Modules/RegisterModules/UserAuthentication/ExistingUserKyc/Application Logic/Interactor/ExistingUserKycInteractor.swift
  24. 4
      GME Remit/Modules/RegisterModules/UserAuthentication/ExistingUserKyc/Application Logic/Service/ExistingUserKycService.swift
  25. 60
      GME Remit/Modules/RegisterModules/UserAuthentication/ExistingUserKyc/User Interface/Presenter/ExistingUserKycPresenter.swift
  26. 266
      GME Remit/Modules/RegisterModules/UserAuthentication/ExistingUserKyc/User Interface/View/ExistingUserKyc.storyboard
  27. 167
      GME Remit/Modules/RegisterModules/UserAuthentication/ExistingUserKyc/User Interface/View/ExistingUserKycViewController.swift
  28. 4
      GME Remit/Modules/RegisterModules/UserAuthentication/KYCVerifyStep1/Application Logic/Model/KYCInfoModel.swift
  29. 34
      GME Remit/Modules/RegisterModules/UserAuthentication/KYCVerifyStep1/Application Logic/Model/PersonalInfoModel.swift
  30. 45
      GME Remit/Modules/RegisterModules/UserAuthentication/KYCVerifyStep1/User Interface/Presenter/KYCVerifyStep1Presenter.swift
  31. 2
      GME Remit/Modules/RegisterModules/UserAuthentication/KYCVerifyStep1/User Interface/View/KYCVerifyStep1.storyboard
  32. 37
      GME Remit/Modules/RegisterModules/UserAuthentication/KYCVerifyStep1/User Interface/View/KYCVerifyStep1ViewController.swift
  33. 5
      GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/User Interface/Wireframe/NewRegisterWireframe.swift
  34. 10
      GME Remit/Modules/RemittanceModules/InboundModules/InboundReceipt/User Interface/View/InboundReceipt.storyboard
  35. 46
      GME Remit/Modules/RemittanceModules/OverseasModules/PINView/PINKeyboardView.xib
  36. 12
      GME Remit/Modules/RemittanceModules/OverseasModules/SendMoneyReceipt/User Interface/View/SendMoneyReceipt.storyboard
  37. 13
      GME Remit/Modules/SideMenu/SideMenu.storyboard
  38. 40
      GME Remit/Modules/SplashScreen/User Interface/View/SplashScreen.storyboard
  39. 22
      GME Remit/MultiLanguages/en.lproj/Localizable.strings
  40. 10
      GME Remit/MultiLanguages/id.lproj/Localizable.strings
  41. BIN
      GME Remit/Supported Files/Assets.xcassets/.DS_Store
  42. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/100.png
  43. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/1024.png
  44. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/114.png
  45. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/120.png
  46. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/144.png
  47. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/152.png
  48. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/167.png
  49. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/180.png
  50. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/20.png
  51. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/29.png
  52. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/40.png
  53. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/50.png
  54. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/57.png
  55. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/58.png
  56. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/60.png
  57. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/72.png
  58. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/76.png
  59. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/80.png
  60. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/87.png
  61. 282
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Contents.json
  62. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
  63. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
  64. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
  65. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
  66. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
  67. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
  68. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
  69. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
  70. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
  71. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
  72. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
  73. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
  74. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
  75. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
  76. BIN
      GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png
  77. 3
      GME Remit/Supported Files/Assets.xcassets/PinSecurity.imageset/Contents.json
  78. 1
      GME Remit/Supported Files/Assets.xcassets/PinSecurity.imageset/PinSecurity.pdf
  79. BIN
      GME Remit/Supported Files/Assets.xcassets/ccr/app logo.imageset/app logo-1.png
  80. BIN
      GME Remit/Supported Files/Assets.xcassets/ccr/app logo.imageset/app logo.png
  81. BIN
      GME Remit/Supported Files/Assets.xcassets/ccr/ic_logo_white_large 2.imageset/ic_logo_white_large 2-1.png
  82. BIN
      GME Remit/Supported Files/Assets.xcassets/ccr/ic_logo_white_large 2.imageset/ic_logo_white_large 2.png
  83. 3
      GME Remit/Supported Files/Assets.xcassets/ic_backspace.imageset/Contents.json
  84. 1
      GME Remit/Supported Files/Assets.xcassets/ic_backspace.imageset/ic_backspace.pdf
  85. 10
      GME Remit/Supported Files/Assets.xcassets/ic_gme_logo/ic_gme_logo.imageset/Contents.json
  86. 23
      GME Remit/Supported Files/Assets.xcassets/ic_logo_white_large.imageset/Contents.json
  87. BIN
      GME Remit/Supported Files/Assets.xcassets/ic_logo_white_large.imageset/ic_logo_white_large.png
  88. BIN
      GME Remit/Supported Files/Assets.xcassets/ic_logo_white_large.imageset/ic_logo_white_large@2x.png
  89. BIN
      GME Remit/Supported Files/Assets.xcassets/ic_logo_white_large.imageset/ic_logo_white_large@3x.png
  90. 21
      GME Remit/Supported Files/Assets.xcassets/ic_transaction.imageset/Contents.json
  91. 1
      GME Remit/Supported Files/Assets.xcassets/ic_transaction.imageset/Transaction.pdf
  92. 12
      GME Remit/Supported Files/Assets.xcassets/jme_launch_icon.imageset/Contents.json
  93. BIN
      GME Remit/Supported Files/Assets.xcassets/jme_launch_icon.imageset/jme.png
  94. 8
      GME Remit/Supported Files/Base.lproj/LaunchScreen.storyboard
  95. 6
      GME RemitTests/FunctionTest.swift

14
GME Remit.xcodeproj/project.pbxproj

@ -1209,7 +1209,7 @@
918BAF4AE9452B044D51EB13 /* Pods_GME_Remit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_GME_Remit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
9F983C0B2024883D001DCB3F /* UIColor+Ext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+Ext.swift"; sourceTree = "<group>"; };
9FA00FBD1FEE69AF0049753E /* UIView+Ext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIView+Ext.swift"; sourceTree = "<group>"; };
9FD260F41FD00458007A511D /* Fast Remit.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Fast Remit.app"; sourceTree = BUILT_PRODUCTS_DIR; };
9FD260F41FD00458007A511D /* JME Remit.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "JME Remit.app"; sourceTree = BUILT_PRODUCTS_DIR; };
9FD260F71FD00458007A511D /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
9FD260FC1FD00458007A511D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
9FD260FE1FD00458007A511D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
@ -4664,7 +4664,7 @@
9FD260F51FD00458007A511D /* Products */ = {
isa = PBXGroup;
children = (
9FD260F41FD00458007A511D /* Fast Remit.app */,
9FD260F41FD00458007A511D /* JME Remit.app */,
9FD261081FD00458007A511D /* GMERemittanceTests.xctest */,
9FD261131FD00458007A511D /* GMERemittanceUITests.xctest */,
739F817A234ADA75003ABCF3 /* SnapshotUITest.xctest */,
@ -6053,7 +6053,7 @@
);
name = "GME Remit";
productName = GMERemittance;
productReference = 9FD260F41FD00458007A511D /* Fast Remit.app */;
productReference = 9FD260F41FD00458007A511D /* JME Remit.app */;
productType = "com.apple.product-type.application";
};
9FD261071FD00458007A511D /* GMERemittanceTests */ = {
@ -7500,8 +7500,8 @@
"$(OTHER_LDFLAGS)",
"-ObjC",
);
PRODUCT_BUNDLE_IDENTIFIER = com.fast.fasteremit;
PRODUCT_NAME = "Fast Remit";
PRODUCT_BUNDLE_IDENTIFIER = com.jme.jmeremit;
PRODUCT_NAME = "JME Remit";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "GME Remit/Supported Files/GMERemittance-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@ -7540,8 +7540,8 @@
"$(OTHER_LDFLAGS)",
"-ObjC",
);
PRODUCT_BUNDLE_IDENTIFIER = com.fast.fasteremit;
PRODUCT_NAME = "Fast Remit";
PRODUCT_BUNDLE_IDENTIFIER = com.jme.jmeremit;
PRODUCT_NAME = "JME Remit";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "GME Remit/Supported Files/GMERemittance-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";

16
GME Remit/APIs/Router/APIRouter.swift

@ -43,6 +43,7 @@ enum APIRouter {
// MARK: - Existing User Registration
case oldUserAccessRequest(idNumber: String, mobileNumber: String, dob: String)
case oldUserRegister(registerModel: OldUserRegisterRequestModel, firebaseToken: String)
case loadExistingUserInformation
case submitExistingCustomerKYC(model: KYCSaveInformation)
// MARK: - New User Registration
@ -457,13 +458,16 @@ extension APIRouter {
return "\(baseUrl)/inbound/mobile/tranHistory/\(senderId)"
case .loadKYCInformation:
let userID = GMEDB.shared.user.string(.userId) ?? ""
return "\(baseUrlWithoutVersion)/v4/Mobile/loadform/\(userID)/kyc"
return "\(baseUrlWithoutVersion)v4/mobile/loadform/\(userID)/kyc"
case .loadExistingUserInformation:
let userID = GMEDB.shared.user.string(.userId) ?? ""
return "\(baseUrlWithoutVersion)v4/mobile/loadform/\(userID)/kycExistingCustomer"
case .saveKYCInformation:
return "\(baseUrlWithoutVersion)/v4/mobile/RegisterKyc"
case .submitKYC:
return "\(baseUrlWithoutVersion)v1/mobile/RegisterKyc"
case .submitExistingCustomerKYC:
return "\(baseUrlWithoutVersion)v1/mobile/submitExistingCustomerKYC"
return "\(baseUrlWithoutVersion)v1/mobile/RegisterKycExistingCustomer"
case .requestPennyTestAtRegister(let resend):
let userID = GMEDB.shared.user.string(.userId) ?? ""
return "\(baseUrl)/mobile/pennytest/start/\(userID)?reSendCode=\(resend)"
@ -554,6 +558,8 @@ extension APIRouter {
return .post
case .loadKYCInformation:
return .get
case .loadExistingUserInformation:
return .get
case .saveKYCInformation:
return .post
case .submitKYC:
@ -827,7 +833,7 @@ extension APIRouter {
case .submitKYC(let model):
return [
"type": "0",
"occupation": model.personalInformation?.occupation ?? "",
"employeerName": model.personalInformation?.employeerName ?? "",
"sourceOfFund": model.personalInformation?.sourceOfFund ?? "",
"monthlyIncome": model.personalInformation?.monthlyIncome ?? "",
"businessType": model.personalInformation?.businessType ?? "",
@ -842,7 +848,7 @@ extension APIRouter {
case .submitExistingCustomerKYC(let model):
return [
"type": "0",
"occupation": model.personalInformation?.occupation ?? "",
"employeerName": model.personalInformation?.employeerName ?? "",
"sourceOfFund": model.personalInformation?.sourceOfFund ?? "",
"monthlyIncome": model.personalInformation?.monthlyIncome ?? "",
"businessType": model.personalInformation?.businessType ?? "",
@ -850,7 +856,7 @@ extension APIRouter {
"email": model.personalInformation?.email ?? "",
"additionalAddress": model.personalInformation?.address ?? "",
"idType": model.personalInformation?.idType ?? "",
"additionalIdType": model.personalInformation?.additionalIdType ?? "",
"visaStatus": model.personalInformation?.additionalIdType ?? "",
"userId": GMEDB.shared.user.string(.userId) ?? ""
]

2
GME Remit/APIs/UrlManager.swift

@ -17,7 +17,7 @@ class UrlManager {
let baseSocialURL = ""
let liveServerUrl = "http://103.139.152.11:5555/api/"
let liveServerUrl = "http://203.223.132.110:9093/api/"
let testUrl = "http://203.223.132.110:9093/api/"
init() {

2
GME Remit/Extensions/UIViewController+Ext.swift

@ -41,7 +41,7 @@ extension UIViewController {
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 125, height: 30))
imageView.contentMode = .scaleAspectFit
let image = UIImage(named: "ic_gme_new")?.withRenderingMode(.alwaysTemplate)
let image = UIImage(named: "ic_logo_white_large")?.withRenderingMode(.alwaysTemplate)
imageView.image = image
imageView.tintColor = .themeWhiteRed

16
GME Remit/Modules/BiometricAuthModules/BiometricAuthentication/User Interface/View/BiometricAuthentication.storyboard

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16096" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="HSb-ou-7T5">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15705" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="HSb-ou-7T5">
<device id="retina4_7" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16086"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15706"/>
<capability name="Named colors" minToolsVersion="9.0"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@ -34,8 +34,12 @@
<action selector="authenticationButtonTouch:" destination="HSb-ou-7T5" eventType="touchUpInside" id="g7k-Z7-moB"/>
</connections>
</button>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="splash_logo" translatesAutoresizingMaskIntoConstraints="NO" id="wjU-xq-xRN">
<rect key="frame" x="125.5" y="82" width="124.5" height="36.5"/>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="jme_launch_icon" translatesAutoresizingMaskIntoConstraints="NO" id="wjU-xq-xRN">
<rect key="frame" x="157.5" y="70" width="60" height="60"/>
<constraints>
<constraint firstAttribute="height" constant="60" id="ZoT-1x-AhP"/>
<constraint firstAttribute="width" constant="60" id="jEO-tk-lsW"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="heroID" value="GMELogo"/>
</userDefinedRuntimeAttributes>
@ -75,9 +79,8 @@
<point key="canvasLocation" x="-92" y="232.53373313343329"/>
</scene>
</scenes>
<color key="tintColor" red="0.78177064659999995" green="0.55228364470000002" blue="0.018981300289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<resources>
<image name="splash_logo" width="124.5" height="36.5"/>
<image name="jme_launch_icon" width="512" height="512"/>
<namedColor name="ThemeBlue">
<color red="0.18823529411764706" green="0.24313725490196078" blue="0.62352941176470589" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
@ -85,4 +88,5 @@
<color red="0.92941176470588238" green="0.10588235294117647" blue="0.14117647058823529" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
</resources>
<color key="tintColor" red="0.78177064659999995" green="0.55228364470000002" blue="0.018981300289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</document>

17
GME Remit/Modules/ExchangeRates/User Interface/View/ExchangeRates.storyboard

@ -180,7 +180,7 @@
<stackView opaque="NO" contentMode="scaleToFill" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="jYO-er-b2S">
<rect key="frame" x="28" y="17.5" width="69" height="26"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="flag_mongolia" translatesAutoresizingMaskIntoConstraints="NO" id="9Oe-hg-7XR">
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="flag_japan" translatesAutoresizingMaskIntoConstraints="NO" id="9Oe-hg-7XR">
<rect key="frame" x="0.0" y="0.0" width="26" height="26"/>
<constraints>
<constraint firstAttribute="width" constant="26" id="Kvg-kI-gZc"/>
@ -243,7 +243,7 @@
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="qnU-bD-qki">
<rect key="frame" x="15" y="0.0" width="300" height="50"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="252" verticalHuggingPriority="251" text=" -5,000 MNT (Transfer Fees Included)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cpQ-ed-Npr">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="252" verticalHuggingPriority="251" text=" -5,000 JPY (Transfer Fees Included)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cpQ-ed-Npr">
<rect key="frame" x="0.0" y="0.0" width="300" height="50"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="12"/>
<color key="textColor" name="ThemeText"/>
@ -341,23 +341,23 @@
<rect key="frame" x="0.0" y="0.0" width="125" height="60.5"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="i9R-m1-avp">
<rect key="frame" x="7" y="17.5" width="111.5" height="26"/>
<rect key="frame" x="10" y="17.5" width="105" height="26"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Korea" translatesAutoresizingMaskIntoConstraints="NO" id="rbh-s6-5yG">
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="flag_japan" translatesAutoresizingMaskIntoConstraints="NO" id="rbh-s6-5yG">
<rect key="frame" x="0.0" y="0.0" width="26" height="26"/>
<constraints>
<constraint firstAttribute="height" constant="26" id="cKK-XI-Bxn"/>
<constraint firstAttribute="width" constant="26" id="e4o-2L-Yay"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="MNT" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="Tu7-d6-vev">
<rect key="frame" x="36" y="0.0" width="39.5" height="26"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="JPY" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="Tu7-d6-vev">
<rect key="frame" x="36" y="0.0" width="33" height="26"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Bold" family="San Francisco Display" pointSize="18"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_dropdownSmall" translatesAutoresizingMaskIntoConstraints="NO" id="buU-Ck-s8m">
<rect key="frame" x="85.5" y="0.0" width="26" height="26"/>
<rect key="frame" x="79" y="0.0" width="26" height="26"/>
<color key="tintColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="26" id="lDj-76-8TX"/>
@ -509,8 +509,7 @@
</scene>
</scenes>
<resources>
<image name="Korea" width="40" height="40"/>
<image name="flag_mongolia" width="512" height="512"/>
<image name="flag_japan" width="512" height="512"/>
<image name="ic_bank" width="51" height="51"/>
<image name="ic_dropdownSmall" width="6" height="3"/>
<namedColor name="ThemeMainBackground">

14
GME Remit/Modules/Home/User Interface/View/Home.storyboard

@ -26,7 +26,7 @@
<!--Home-->
<scene sceneID="R60-Pu-Hpy">
<objects>
<viewController storyboardIdentifier="HomeViewController" title="Home" id="HSb-ou-7T5" customClass="HomeViewController" customModule="Fast_Remit" customModuleProvider="target" sceneMemberID="viewController">
<viewController storyboardIdentifier="HomeViewController" title="Home" id="HSb-ou-7T5" customClass="HomeViewController" customModule="JME_Remit" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="qRs-xH-5Fi">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@ -88,7 +88,7 @@
<rect key="frame" x="0.0" y="144" width="320" height="375"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="HomeRemainingLimitTableViewCell" id="rcn-u6-1gx" customClass="HomeRemainingLimitTableViewCell" customModule="Fast_Remit" customModuleProvider="target">
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="HomeRemainingLimitTableViewCell" id="rcn-u6-1gx" customClass="HomeRemainingLimitTableViewCell" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="28" width="320" height="132"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="rcn-u6-1gx" id="ekT-Zr-ohe">
@ -146,16 +146,16 @@
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="9Ft-mi-Ev0">
<rect key="frame" x="5" y="8.5" width="124.5" height="43"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="253" ambiguous="YES" text="Kwangju(034)" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumScaleFactor="0.84999999999999998" translatesAutoresizingMaskIntoConstraints="NO" id="IXG-rj-tyI">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="253" text="Kwangju(034)" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumScaleFactor="0.84999999999999998" translatesAutoresizingMaskIntoConstraints="NO" id="IXG-rj-tyI">
<rect key="frame" x="23" y="0.0" width="79" height="15.5"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="13"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" ambiguous="YES" spacing="2" translatesAutoresizingMaskIntoConstraints="NO" id="jPc-HT-RBJ">
<stackView opaque="NO" contentMode="scaleToFill" spacing="2" translatesAutoresizingMaskIntoConstraints="NO" id="jPc-HT-RBJ">
<rect key="frame" x="46" y="20.5" width="32.5" height="22.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="261" verticalHuggingPriority="251" ambiguous="YES" text="N/A" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="FSQ-xU-CsJ">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="261" verticalHuggingPriority="251" text="N/A" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="FSQ-xU-CsJ">
<rect key="frame" x="0.0" y="0.0" width="32.5" height="22.5"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="19"/>
<color key="textColor" name="ThemeRed"/>
@ -239,7 +239,7 @@
<outlet property="walletNumberLabel" destination="FSQ-xU-CsJ" id="0tr-AF-lYp"/>
</connections>
</tableViewCell>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="HomeCollectionTableViewCell" rowHeight="250" id="va0-Yj-PKZ" userLabel="CollectionTableCell" customClass="HomeCollectionTableViewCell" customModule="Fast_Remit" customModuleProvider="target">
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="HomeCollectionTableViewCell" rowHeight="250" id="va0-Yj-PKZ" userLabel="CollectionTableCell" customClass="HomeCollectionTableViewCell" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="160" width="320" height="250"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="va0-Yj-PKZ" id="UgU-Jo-DQf">
@ -259,7 +259,7 @@
<inset key="sectionInset" minX="10" minY="10" maxX="10" maxY="10"/>
</collectionViewFlowLayout>
<cells>
<collectionViewCell opaque="NO" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="HomeCollectionCollectionViewCell" id="Etq-JH-rVI" customClass="HomeCollectionCollectionViewCell" customModule="Fast_Remit" customModuleProvider="target">
<collectionViewCell opaque="NO" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="HomeCollectionCollectionViewCell" id="Etq-JH-rVI" customClass="HomeCollectionCollectionViewCell" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="65" y="10" width="170" height="173"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO">

10
GME Remit/Modules/LauncherScreen/User Interface/View/LauncherScreen.storyboard

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16096" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="HSb-ou-7T5">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15705" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="HSb-ou-7T5">
<device id="retina4_7" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16086"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15706"/>
<capability name="Named colors" minToolsVersion="9.0"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@ -17,7 +17,7 @@
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_gme_logo" translatesAutoresizingMaskIntoConstraints="NO" id="jpx-5z-FsD">
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="jme_launch_icon" translatesAutoresizingMaskIntoConstraints="NO" id="jpx-5z-FsD">
<rect key="frame" x="162.5" y="308.5" width="50" height="50"/>
<constraints>
<constraint firstAttribute="width" constant="50" id="0h6-5f-fhf"/>
@ -44,11 +44,11 @@
<point key="canvasLocation" x="-91" y="233"/>
</scene>
</scenes>
<color key="tintColor" red="0.78177064659999995" green="0.55228364470000002" blue="0.018981300289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<resources>
<image name="ic_gme_logo" width="120" height="120"/>
<image name="jme_launch_icon" width="512" height="512"/>
<namedColor name="ThemeRedDark">
<color red="0.92941176470588238" green="0.10588235294117647" blue="0.14117647058823529" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
</resources>
<color key="tintColor" red="0.78177064659999995" green="0.55228364470000002" blue="0.018981300289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</document>

4
GME Remit/Modules/Login/User Interface/View/Login.storyboard

@ -107,7 +107,7 @@
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="422-eP-Fan">
<rect key="frame" x="30" y="10" width="260" height="115"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_gme_logo" translatesAutoresizingMaskIntoConstraints="NO" id="9Qx-W8-qeU">
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="jme_launch_icon" translatesAutoresizingMaskIntoConstraints="NO" id="9Qx-W8-qeU">
<rect key="frame" x="0.0" y="0.0" width="260" height="40"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="PSx-Xq-cAj"/>
@ -205,8 +205,8 @@ Fast Remit </string>
</scenes>
<resources>
<image name="ic-profile" width="20.5" height="20.5"/>
<image name="ic_gme_logo" width="120" height="120"/>
<image name="ic_password" width="24" height="24"/>
<image name="jme_launch_icon" width="512" height="512"/>
<namedColor name="ThemeBlue">
<color red="0.18823529411764706" green="0.24313725490196078" blue="0.62352941176470589" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>

18
GME Remit/Modules/Profile/Profile.storyboard

@ -29,7 +29,7 @@
<!--Profile Personal Infomation Edit View Controller-->
<scene sceneID="XCx-WW-Y8F">
<objects>
<viewController id="M7X-u6-bNd" customClass="ProfilePersonalInfomationEditViewController" customModule="Fast_Remit" customModuleProvider="target" sceneMemberID="viewController">
<viewController id="M7X-u6-bNd" customClass="ProfilePersonalInfomationEditViewController" customModule="JME_Remit" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="nV6-OB-Uhc">
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@ -315,7 +315,7 @@
<!--Profile Change Information Detail View Controller-->
<scene sceneID="ckG-K9-dfa">
<objects>
<viewController id="ZFn-Gg-u3R" customClass="ProfileChangeInformationDetailViewController" customModule="Fast_Remit" customModuleProvider="target" sceneMemberID="viewController">
<viewController id="ZFn-Gg-u3R" customClass="ProfileChangeInformationDetailViewController" customModule="JME_Remit" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="Dwd-Eu-lr5">
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@ -330,7 +330,7 @@
<!--Profile-->
<scene sceneID="d42-Q8-kmE">
<objects>
<viewController storyboardIdentifier="ProfileViewController" id="ift-aL-bsv" customClass="ProfileViewController" customModule="Fast_Remit" customModuleProvider="target" sceneMemberID="viewController">
<viewController storyboardIdentifier="ProfileViewController" id="ift-aL-bsv" customClass="ProfileViewController" customModule="JME_Remit" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="Ead-ne-CIv">
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@ -683,7 +683,7 @@
<!--Profile Change Password View Controller-->
<scene sceneID="rlZ-v6-9ba">
<objects>
<viewController storyboardIdentifier="changePassword" useStoryboardIdentifierAsRestorationIdentifier="YES" id="4vv-1X-cU7" customClass="ProfileChangePasswordViewController" customModule="Fast_Remit" customModuleProvider="target" sceneMemberID="viewController">
<viewController storyboardIdentifier="changePassword" useStoryboardIdentifierAsRestorationIdentifier="YES" id="4vv-1X-cU7" customClass="ProfileChangePasswordViewController" customModule="JME_Remit" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="7Pk-Ju-HzD" customClass="ProfileCh">
<rect key="frame" x="0.0" y="0.0" width="375" height="758"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@ -895,7 +895,7 @@ At least one capital letter, At least one number
<!--Profile Change Pin View Controller-->
<scene sceneID="ILj-1d-nZ5">
<objects>
<viewController storyboardIdentifier="changePin" id="AXR-U0-D4K" customClass="ProfileChangePinViewController" customModule="Fast_Remit" customModuleProvider="target" sceneMemberID="viewController">
<viewController storyboardIdentifier="changePin" id="AXR-U0-D4K" customClass="ProfileChangePinViewController" customModule="JME_Remit" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="her-7g-414">
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@ -912,19 +912,19 @@ At least one capital letter, At least one number
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" spacing="9" translatesAutoresizingMaskIntoConstraints="NO" id="7xD-Q7-hHh">
<rect key="frame" x="0.0" y="0.0" width="299" height="200"/>
<subviews>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your Current PIN" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="F2k-F0-UYs" customClass="ValidationTextField" customModule="Fast_Remit" customModuleProvider="target">
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your Current PIN" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="F2k-F0-UYs" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="299" height="60.666666666666664"/>
<color key="textColor" name="ThemeText"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="18"/>
<textInputTraits key="textInputTraits" secureTextEntry="YES"/>
</textField>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your New PIN" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="Eiz-rR-0nN" customClass="ValidationTextField" customModule="Fast_Remit" customModuleProvider="target">
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your New PIN" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="Eiz-rR-0nN" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="69.666666666666657" width="299" height="60.666666666666657"/>
<color key="textColor" name="ThemeText"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="18"/>
<textInputTraits key="textInputTraits" secureTextEntry="YES"/>
</textField>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Confirm your PIN" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="Yc1-rZ-6DK" customClass="ValidationTextField" customModule="Fast_Remit" customModuleProvider="target">
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Confirm your PIN" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="Yc1-rZ-6DK" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="139.33333333333331" width="299" height="60.666666666666657"/>
<color key="textColor" name="ThemeText"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="18"/>
@ -1016,7 +1016,7 @@ At least one capital letter, At least one number
<!--Withdraw View Controller-->
<scene sceneID="TNk-Nb-bPc">
<objects>
<viewController storyboardIdentifier="withdraw" id="Z18-bb-Vml" customClass="WithdrawViewController" customModule="Fast_Remit" customModuleProvider="target" sceneMemberID="viewController">
<viewController storyboardIdentifier="withdraw" id="Z18-bb-Vml" customClass="WithdrawViewController" customModule="JME_Remit" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="1Ft-3I-BCr">
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>

1
GME Remit/Modules/RegisterModules/ExistingUserRegistration/UserAccessRequest/Application Logic/Service/ExistingUserRegistrationServiceType.swift

@ -44,6 +44,7 @@ extension RegisterExistingUserService {
let model = response.message ?? ""
GMEDB.shared.register.set(response.data?.referenceId , .referenceId)
GMEDB.shared.user.set(response.data?.userId, .userId)
success(model)
}
},

2
GME Remit/Modules/RegisterModules/ExistingUserRegistration/UserAccessRequest/User Interface/View/ExistingUserRegistration.storyboard

@ -37,7 +37,7 @@
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillProportionally" spacing="16" translatesAutoresizingMaskIntoConstraints="NO" id="BWa-We-C8W">
<rect key="frame" x="20" y="20" width="335" height="106"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Existing JME User Registration" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Nhy-eQ-ReU">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Existing JME User Registration" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Nhy-eQ-ReU">
<rect key="frame" x="0.0" y="0.0" width="335" height="28.5"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Bold" family="San Francisco Display" pointSize="24"/>
<color key="textColor" name="ThemeRedWhite"/>

2
GME Remit/Modules/RegisterModules/ExistingUserRegistration/UserRegistration/Application Logic/Interactor/UserRegistrationInteractor.swift

@ -41,6 +41,8 @@ extension UserRegistrationInteractor: UserRegistrationInteractorInput {
password: model.password ?? "",
success: { user in
GMEDB.shared.user.set(user?.accessCode, .accessCode)
KeyChain.shared.save(data: model.password ?? "", key: .temporaryPW)
self.output?.loggedIn(message: message ?? "")
},
failure: {

15
GME Remit/Modules/RegisterModules/ExistingUserRegistration/UserRegistration/User Interface/View/UserRegistration.storyboard

@ -19,7 +19,7 @@
<!--UserRegistration-->
<scene sceneID="R60-Pu-Hpy">
<objects>
<viewController storyboardIdentifier="UserRegistrationViewController" title="UserRegistration" id="HSb-ou-7T5" customClass="UserRegistrationViewController" customModule="Fast_Remit" customModuleProvider="target" sceneMemberID="viewController">
<viewController storyboardIdentifier="UserRegistrationViewController" title="UserRegistration" id="HSb-ou-7T5" customClass="UserRegistrationViewController" customModule="JME_Remit" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="y1H-iV-BwG"/>
<viewControllerLayoutGuide type="bottom" id="PYB-Kq-ghm"/>
@ -57,7 +57,7 @@
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="EnD-3l-9UQ">
<rect key="frame" x="20" y="156" width="335" height="330"/>
<subviews>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="User ID" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="fGQ-VA-4sP" customClass="ValidationTextField" customModule="Fast_Remit" customModuleProvider="target">
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="User ID" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="fGQ-VA-4sP" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="335" height="50"/>
<constraints>
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="50" id="G6v-oV-WVl"/>
@ -74,7 +74,7 @@
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</textField>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="New Password" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="7nm-BD-xfE" customClass="ValidationTextField" customModule="Fast_Remit" customModuleProvider="target">
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="New Password" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="7nm-BD-xfE" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="70" width="335" height="50"/>
<color key="textColor" name="ThemeText"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
@ -88,7 +88,7 @@
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</textField>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Confirm Password" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="evN-ey-7ep" customClass="ValidationTextField" customModule="Fast_Remit" customModuleProvider="target">
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Confirm Password" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="evN-ey-7ep" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="140" width="335" height="50"/>
<color key="textColor" name="ThemeText"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
@ -102,7 +102,7 @@
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</textField>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="New Pin" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="Mph-uI-6nu" customClass="ValidationTextField" customModule="Fast_Remit" customModuleProvider="target">
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="New Pin" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="Mph-uI-6nu" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="210" width="335" height="50"/>
<color key="textColor" name="ThemeText"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
@ -113,9 +113,10 @@
<userDefinedRuntimeAttribute type="color" keyPath="leftImageTintColor">
<color key="value" name="ThemeText"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="image" keyPath="leftImage" value="ic_transaction"/>
</userDefinedRuntimeAttributes>
</textField>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Confirm Pin" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="Kre-s9-zcd" customClass="ValidationTextField" customModule="Fast_Remit" customModuleProvider="target">
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Confirm Pin" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="Kre-s9-zcd" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="280" width="335" height="50"/>
<color key="textColor" name="ThemeText"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
@ -126,6 +127,7 @@
<userDefinedRuntimeAttribute type="color" keyPath="leftImageTintColor">
<color key="value" name="ThemeText"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="image" keyPath="leftImage" value="ic_transaction"/>
</userDefinedRuntimeAttributes>
</textField>
</subviews>
@ -199,6 +201,7 @@
<resources>
<image name="ic-profile" width="20.5" height="20.5"/>
<image name="ic_password" width="24" height="24"/>
<image name="ic_transaction" width="20" height="20"/>
<namedColor name="ThemeRedWhite">
<color red="0.92941176470588238" green="0.10588235294117647" blue="0.14117647058823529" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>

8
GME Remit/Modules/RegisterModules/ExistingUserRegistration/UserRegistration/User Interface/View/UserRegistrationViewController.swift

@ -195,10 +195,10 @@ extension UserRegistrationViewController: UserRegistrationViewInterface {
title: "Success",
okTitle: "Ok"
) {
// guard let id = self.userIDTxtField.text else {
// return
// }
// GMEDB.shared.user.set(id, .userId)
guard let id = self.userIDTxtField.text else{
return
}
KeyChain.shared.save(data: id, key: .temporaryID)
self.presenter?.showKyc()
}
}

2
GME Remit/Modules/RegisterModules/NewUserRegister/Application Logic/Interactor/NewUserRegisterInteractor.swift

@ -27,6 +27,7 @@ class NewUserRegisterInteractor {
// MARK: NewUserRegister interactor input interface
extension NewUserRegisterInteractor: NewUserRegisterInteractorInput {
func registerUser(model: NewUserRegisterModel) {
GMEDB.shared.getFcmToken { (token, error) in
self.service.userRegister(
@ -40,6 +41,7 @@ extension NewUserRegisterInteractor: NewUserRegisterInteractorInput {
password: model.password ?? "",
success: { (user) in
GMEDB.shared.user.set(user?.accessCode, .accessCode)
KeyChain.shared.save(data: model.password ?? "", key: .temporaryPW)
self.output?.loggedIn(message: message ?? "")
},
failure: {

1
GME Remit/Modules/RegisterModules/NewUserRegister/Module Interface/NewUserRegisterModuleInterface.swift

@ -9,4 +9,5 @@
protocol NewUserRegisterModuleInterface: class {
func registerUser(model: NewUserRegisterModel)
func showKyc()
func userLogin()
}

5
GME Remit/Modules/RegisterModules/NewUserRegister/User Interface/Presenter/NewUserRegisterPresenter.swift

@ -26,6 +26,11 @@ extension NewUserRegisterPresenter: NewUserRegisterModuleInterface {
self.view?.showLoading()
self.interactor?.registerUser(model: model)
}
func userLogin() {
self.wireframe?.userLogin()
}
func showKyc() {
self.wireframe?.showKyc()
}

11
GME Remit/Modules/RegisterModules/NewUserRegister/User Interface/View/NewUserRegister.storyboard

@ -19,7 +19,7 @@
<!--NewUserRegister-->
<scene sceneID="R60-Pu-Hpy">
<objects>
<viewController storyboardIdentifier="NewUserRegisterViewController" title="NewUserRegister" id="HSb-ou-7T5" customClass="NewUserRegisterViewController" customModule="Fast_Remit" customModuleProvider="target" sceneMemberID="viewController">
<viewController storyboardIdentifier="NewUserRegisterViewController" title="NewUserRegister" id="HSb-ou-7T5" customClass="NewUserRegisterViewController" customModule="JME_Remit" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="y1H-iV-BwG"/>
<viewControllerLayoutGuide type="bottom" id="PYB-Kq-ghm"/>
@ -43,7 +43,7 @@
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="PLH-UK-lzh">
<rect key="frame" x="20" y="68" width="335" height="190"/>
<subviews>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="User ID" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="4D5-GM-71m" customClass="ValidationTextField" customModule="Fast_Remit" customModuleProvider="target">
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="User ID" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="4D5-GM-71m" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="335" height="50"/>
<constraints>
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="50" id="JLS-T5-lpT"/>
@ -60,7 +60,7 @@
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</textField>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="New Password" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="Nna-RK-Ap0" customClass="ValidationTextField" customModule="Fast_Remit" customModuleProvider="target">
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="New Password" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="Nna-RK-Ap0" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="70" width="335" height="50"/>
<color key="textColor" name="ThemeText"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="17"/>
@ -74,7 +74,7 @@
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</textField>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Confirm Password" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="VKi-Ky-lHV" customClass="ValidationTextField" customModule="Fast_Remit" customModuleProvider="target">
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Confirm Password" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="VKi-Ky-lHV" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="140" width="335" height="50"/>
<color key="textColor" name="ThemeText"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="17"/>
@ -119,6 +119,9 @@
<state key="normal" title="Login">
<color key="titleColor" name="ThemeBlue"/>
</state>
<connections>
<action selector="loginBtnClicked:" destination="HSb-ou-7T5" eventType="touchUpInside" id="Da7-PM-cuJ"/>
</connections>
</button>
</subviews>
<constraints>

5
GME Remit/Modules/RegisterModules/NewUserRegister/User Interface/View/NewUserRegisterViewController.swift

@ -82,6 +82,10 @@ class NewUserRegisterViewController: UIViewController {
self.presenter?.registerUser(model: model)
}
@IBAction func loginBtnClicked(_ sender: UIButton) {
self.presenter?.userLogin()
}
// MARK: Other Functions
private func setup() {
@ -168,6 +172,7 @@ extension NewUserRegisterViewController: NewUserRegisterViewInterface {
return
}
GMEDB.shared.user.set(id, .userId)
KeyChain.shared.save(data: id, key: .temporaryID)
self.presenter?.showKyc()
}
}

7
GME Remit/Modules/RegisterModules/NewUserRegister/User Interface/Wireframe/NewUserRegisterWireframe.swift

@ -39,4 +39,11 @@ extension NewUserRegisterWireframe: NewUserRegisterWireframeInput {
}
}
func userLogin() {
if let navigation = self.view.navigationController {
LoginWireframe().pushMainView(in: navigation)
}
}
}

1
GME Remit/Modules/RegisterModules/NewUserRegister/User Interface/Wireframe/NewUserRegisterWireframeInput.swift

@ -10,4 +10,5 @@ import Foundation
protocol NewUserRegisterWireframeInput: WireframeInput {
func showKyc()
func userLogin()
}

2
GME Remit/Modules/RegisterModules/UserAuthentication/ExistingUserKyc/Application Logic/Interactor/ExistingUserKycInteractor.swift

@ -58,6 +58,4 @@ extension ExistingUserKycInteractor: ExistingUserKycInteractorInput {
)
}
}
}

4
GME Remit/Modules/RegisterModules/UserAuthentication/ExistingUserKyc/Application Logic/Service/ExistingUserKycService.swift

@ -15,7 +15,7 @@ class ExistingUserKycService: ExistingUserKycServiceType {
success: @escaping (KYCInfoModel) -> Void,
failure: @escaping (Error) -> Void
) {
APIRouter.loadKYCInformation.json(
APIRouter.loadExistingUserInformation.json(
needsAuthorization: false,
success: success,
failure: failure
@ -27,7 +27,7 @@ class ExistingUserKycService: ExistingUserKycServiceType {
success: @escaping (String) -> Void,
failure: @escaping (Error) -> Void
) {
APIRouter.submitKYC(model: model)
APIRouter.submitExistingCustomerKYC(model: model)
.requestMultipart(
images: getImageParams(model: model),
needsAuthorization: true,

60
GME Remit/Modules/RegisterModules/UserAuthentication/ExistingUserKyc/User Interface/Presenter/ExistingUserKycPresenter.swift

@ -25,13 +25,13 @@ class ExistingUserKycPresenter {
let viewWillAppear: Driver<Bool>
let sendLocation: Driver<CLLocation>
let employerName: Driver<String>
let sourceOfFund: Driver<KeyValue?>
let monthlyIncome: Driver<KeyValue?>
let businessType: Driver<KeyValue?>
let visaStatus: Driver<KeyValue?>
let idType: Driver<KeyValue?>
let additionalIdType: Driver<KeyValue?>
let employerName: Driver<String>
let mobile: Driver<String>
let email: Driver<String>
let address: Driver<String>
@ -43,8 +43,6 @@ class ExistingUserKycPresenter {
let frontIDImage: Driver<String?>
let backIDImage: Driver<String?>
let sideIDImage: Driver<String?>
let additionalIDImage: Driver<String?>
let facePicture: Driver<String?>
let isValidPictures: Driver<Bool>
let editingPictureInfo: Driver<Void>
@ -59,10 +57,10 @@ class ExistingUserKycPresenter {
let model: Driver<KYCInfoModel>
let idTypes: Driver<[KeyValue]?>
let additionaIDType: Driver<[KeyValue]?>
let busniessType: Driver<[KeyValue]?>
let sourceOfFund: Driver<[KeyValue]?>
let monthlyIncome: Driver<[KeyValue]?>
let visaStatus: Driver<[KeyValue]?>
let isSetPersonalInfoModel: Driver<Bool>
let isSetPictureInfoModel: Driver<Bool>
@ -88,17 +86,15 @@ class ExistingUserKycPresenter {
input.isValidPictures,
input.frontIDImage,
input.backIDImage,
input.sideIDImage,
input.additionalIDImage,
input.facePicture
).map { (isValid, frontIdImage, backIdImage, sideIdImage, additionalIdImage, facePicture) -> PictureInfoModel? in
return isValid ? PictureInfoModel(idFront: frontIdImage, idBack: backIdImage, idSide: sideIdImage, additionalId: additionalIdImage, facePicture: facePicture) : nil
input.sideIDImage
).map { (isValid, frontIdImage, backIdImage, sideIdImage) -> PictureInfoModel? in
return isValid ? PictureInfoModel(idFront: frontIdImage, idBack: backIdImage, idSide: sideIdImage, additionalId: nil, facePicture: nil) : nil
}
let newPersonalInfo = Driver.combineLatest(
/* let newPersonalInfo = Driver.combineLatest(
input.isValidPersonalInfo,
input.idType,
input.additionalIdType,
input.visaStatus,
Driver.combineLatest(
input.employerName,
input.sourceOfFund,
@ -108,24 +104,52 @@ class ExistingUserKycPresenter {
input.email,
input.address,
model.map{$0.personalInformation?.nativeCountry}.asDriverOnErrorJustComplete()
).map({ (employerName, sourceOfFund, monthlyIncome, mobile, businessType, email, address, nativeCountry) -> PersonalInfoModel in
).map({ (email, sourceOfFund, monthlyIncome, address, businessType, mobile, nativeCountry, employerName) -> PersonalInfoModel in
return PersonalInfoModel(
email: email,
address: address,
occupation: employerName,
visaStatus: nil,
sourceOfFund: sourceOfFund?.id,
monthlyIncome: monthlyIncome?.id,
mobile: mobile,
idType: nil,
additionalIdType: nil,
businessType: businessType?.id,
nativeCountry: nativeCountry)
nativeCountry: nativeCountry,
employeerName: employerName
)
})
).map { (isValid, visaStatus, idType, info) -> PersonalInfoModel? in
if isValid{
var personalInfo = info
personalInfo.idType = idType?.id
personalInfo.visaStatus = visaStatus?.id
return personalInfo
}
return nil
}*/
let newPersonalInfo = Driver.combineLatest(
input.isValidPersonalInfo,
input.idType,
input.visaStatus,
Driver.combineLatest(
input.employerName,
input.sourceOfFund,
input.monthlyIncome,
input.mobile,
input.businessType,
input.email,
input.address,
model.map{$0.personalInformation?.nativeCountry}.asDriverOnErrorJustComplete()
).map({ (employerName, sourceOfFund, monthlyIncome, mobile, businessType, email, address, nativeCountry) -> PersonalInfoModel in
return PersonalInfoModel(email: email, address: address, visaStatus: nil, sourceOfFund: sourceOfFund?.id, monthlyIncome: monthlyIncome?.id, mobile: mobile, idType: nil, additionalIdType: nil, businessType: businessType?.id, nativeCountry: nativeCountry, employeerName: employerName)
})
).map { (isValid, idType, additionalIdType, info) -> PersonalInfoModel? in
).map { (isValid, idType, visaStatus, info) -> PersonalInfoModel? in
if isValid{
var personalInfo = info
personalInfo.idType = idType?.id
personalInfo.additionalIdType = additionalIdType?.id
personalInfo.visaStatus = visaStatus?.id
return personalInfo
}
return nil
@ -224,10 +248,10 @@ class ExistingUserKycPresenter {
gpsAddress: gpsAddress.asDriverOnErrorJustComplete(),
model: model.asDriverOnErrorJustComplete(),
idTypes: model.map {$0.idType}.asDriverOnErrorJustComplete(),
additionaIDType: model.map {$0.additionalIdType}.asDriverOnErrorJustComplete(),
busniessType: model.map {$0.businessType}.asDriverOnErrorJustComplete(),
sourceOfFund: model.map {$0.sourceOfFund}.asDriverOnErrorJustComplete(),
monthlyIncome: model.map {$0.monthlyIncome}.asDriverOnErrorJustComplete(),
visaStatus: model.map {$0.visaStatus}.asDriverOnErrorJustComplete(),
isSetPersonalInfoModel: isSetPersonalInformation,
isSetPictureInfoModel: isSetPictureInformation,
storePersonalSuccess: storePersonalSuccess,

266
GME Remit/Modules/RegisterModules/UserAuthentication/ExistingUserKyc/User Interface/View/ExistingUserKyc.storyboard

@ -32,13 +32,13 @@
<rect key="frame" x="0.0" y="0.0" width="375" height="1700"/>
<subviews>
<view contentMode="scaleToFill" placeholderIntrinsicWidth="375" placeholderIntrinsicHeight="594.5" translatesAutoresizingMaskIntoConstraints="NO" id="TF6-Vy-Vuj">
<rect key="frame" x="0.0" y="0.0" width="375" height="1592"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="1274"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="YV6-LS-yFu">
<rect key="frame" x="10" y="10" width="355" height="1572"/>
<rect key="frame" x="10" y="10" width="355" height="1254"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="Eqk-0p-Ioj">
<rect key="frame" x="20" y="20" width="315" height="1532"/>
<rect key="frame" x="20" y="20" width="315" height="1214"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="Bmg-VI-mjQ">
<rect key="frame" x="0.0" y="0.0" width="315" height="687"/>
@ -83,7 +83,7 @@
<userDefinedRuntimeAttribute type="string" keyPath="placeholder" value="Employer Name"/>
</userDefinedRuntimeAttributes>
</textField>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Full Name (Shown in your id card)" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="SVD-OG-9os" customClass="ValidationTextField" customModule="Fast_Remit" customModuleProvider="target">
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Source Of Fund" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="SVD-OG-9os" customClass="ValidationTextField" customModule="Fast_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="53" width="315" height="45"/>
<constraints>
<constraint firstAttribute="height" constant="45" id="p5r-dd-bii"/>
@ -254,7 +254,7 @@
<userDefinedRuntimeAttribute type="string" keyPath="placeholder" value="Id Type"/>
</userDefinedRuntimeAttributes>
</textField>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="E-mail" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="MkR-sA-RxH" customClass="ValidationTextField" customModule="Fast_Remit" customModuleProvider="target">
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Visa Status" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="JfT-uS-a2a" customClass="ValidationTextField" customModule="Fast_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="53" width="315" height="45"/>
<color key="textColor" name="ThemeText"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="14"/>
@ -291,129 +291,10 @@
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="SIj-Gb-xvD">
<rect key="frame" x="0.0" y="692" width="315" height="840"/>
<rect key="frame" x="0.0" y="692" width="315" height="522"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="e7C-xN-Lnq">
<rect key="frame" x="0.0" y="0.0" width="315" height="25"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3FF-GV-btL">
<rect key="frame" x="0.0" y="0.0" width="25" height="25"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="picture" translatesAutoresizingMaskIntoConstraints="NO" id="dvp-ns-KlB">
<rect key="frame" x="2.5" y="2.5" width="20" height="20"/>
<constraints>
<constraint firstAttribute="width" constant="20" id="N33-ZP-UPn"/>
<constraint firstAttribute="height" constant="20" id="kUH-lo-l8Y"/>
</constraints>
</imageView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="dvp-ns-KlB" firstAttribute="top" secondItem="3FF-GV-btL" secondAttribute="top" constant="2.5" id="Hsw-AJ-ttT"/>
<constraint firstAttribute="trailing" secondItem="dvp-ns-KlB" secondAttribute="trailing" constant="2.5" id="UCC-6N-D83"/>
<constraint firstItem="dvp-ns-KlB" firstAttribute="leading" secondItem="3FF-GV-btL" secondAttribute="leading" constant="2.5" id="m9r-qU-OBO"/>
<constraint firstAttribute="bottom" secondItem="dvp-ns-KlB" secondAttribute="bottom" constant="2.5" id="phc-CF-3IH"/>
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Your Face Picture" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1Qk-eY-RVJ">
<rect key="frame" x="30" y="0.0" width="285" height="25"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="19"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="PMC-6K-aRj">
<rect key="frame" x="0.0" y="45" width="315" height="94"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" spacing="30" translatesAutoresizingMaskIntoConstraints="NO" id="elX-eZ-fB1">
<rect key="frame" x="0.0" y="0.0" width="315" height="94"/>
<subviews>
<view opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="jAz-cy-mSO" userLabel="ViewFront">
<rect key="frame" x="0.0" y="0.0" width="315" height="94"/>
<subviews>
<view opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Rdm-cY-eIH">
<rect key="frame" x="2" y="2" width="98" height="90"/>
<subviews>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleAspectFit" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="kDo-2B-xpO">
<rect key="frame" x="0.0" y="0.0" width="98" height="90"/>
<state key="normal" image="ic_passport_picture"/>
</button>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="kDo-2B-xpO" firstAttribute="top" secondItem="Rdm-cY-eIH" secondAttribute="top" id="2ZT-TJ-4nF"/>
<constraint firstAttribute="bottom" secondItem="kDo-2B-xpO" secondAttribute="bottom" id="74C-qc-uCk"/>
<constraint firstAttribute="trailing" secondItem="kDo-2B-xpO" secondAttribute="trailing" id="BFm-1a-hDT"/>
<constraint firstAttribute="width" constant="98" id="QVI-v0-XH0"/>
<constraint firstItem="kDo-2B-xpO" firstAttribute="leading" secondItem="Rdm-cY-eIH" secondAttribute="leading" id="bYm-tO-BD8"/>
</constraints>
</view>
<view opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qdK-Dw-nHt">
<rect key="frame" x="110" y="2" width="203" height="90"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="top" spacing="11" translatesAutoresizingMaskIntoConstraints="NO" id="vgU-wr-MyS">
<rect key="frame" x="0.0" y="19" width="203" height="52.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Your Face Picture" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="RuL-lt-Ra8">
<rect key="frame" x="0.0" y="0.0" width="118.5" height="17.5"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="15"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Hd9-Ys-WuN">
<rect key="frame" x="0.0" y="28.5" width="58" height="24"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="10"/>
<state key="normal" title="View Sample">
<color key="titleColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/>
</state>
<connections>
<action selector="showSampleButton:" destination="HSb-ou-7T5" eventType="touchUpInside" id="5WS-pb-sbt"/>
</connections>
</button>
</subviews>
</stackView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="vgU-wr-MyS" firstAttribute="centerY" secondItem="qdK-Dw-nHt" secondAttribute="centerY" id="6ZD-dd-UFg"/>
<constraint firstItem="vgU-wr-MyS" firstAttribute="leading" secondItem="qdK-Dw-nHt" secondAttribute="leading" id="gru-P6-RE3"/>
<constraint firstItem="vgU-wr-MyS" firstAttribute="centerX" secondItem="qdK-Dw-nHt" secondAttribute="centerX" id="jxc-eU-Cn1"/>
<constraint firstAttribute="trailing" secondItem="vgU-wr-MyS" secondAttribute="trailing" id="wl1-JX-3dB"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="qdK-Dw-nHt" secondAttribute="trailing" constant="2" id="420-XA-34V"/>
<constraint firstItem="qdK-Dw-nHt" firstAttribute="leading" secondItem="Rdm-cY-eIH" secondAttribute="trailing" constant="10" id="ABM-sF-vn0"/>
<constraint firstAttribute="height" constant="94" id="DEJ-yT-2Zu"/>
<constraint firstAttribute="bottom" secondItem="Rdm-cY-eIH" secondAttribute="bottom" constant="2" id="Jjk-tB-MTg"/>
<constraint firstAttribute="bottom" secondItem="qdK-Dw-nHt" secondAttribute="bottom" constant="2" id="Mvk-rv-iyg"/>
<constraint firstItem="Rdm-cY-eIH" firstAttribute="leading" secondItem="jAz-cy-mSO" secondAttribute="leading" constant="2" id="hJe-MS-w9a"/>
<constraint firstItem="qdK-Dw-nHt" firstAttribute="top" secondItem="jAz-cy-mSO" secondAttribute="top" constant="2" id="oks-E8-RGB"/>
<constraint firstItem="Rdm-cY-eIH" firstAttribute="top" secondItem="jAz-cy-mSO" secondAttribute="top" constant="2" id="zD5-Xf-nDb"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
<integer key="value" value="5"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
</subviews>
</stackView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="elX-eZ-fB1" firstAttribute="top" secondItem="PMC-6K-aRj" secondAttribute="top" id="9Y4-tJ-UMP"/>
<constraint firstAttribute="bottom" secondItem="elX-eZ-fB1" secondAttribute="bottom" id="CuF-uL-Yi8"/>
<constraint firstItem="elX-eZ-fB1" firstAttribute="leading" secondItem="PMC-6K-aRj" secondAttribute="leading" id="oAm-G6-BbV"/>
<constraint firstAttribute="trailing" secondItem="elX-eZ-fB1" secondAttribute="trailing" id="x0F-Cx-qYO"/>
</constraints>
</view>
<stackView opaque="NO" contentMode="scaleToFill" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="g5T-gO-2XU">
<rect key="frame" x="0.0" y="159" width="315" height="25"/>
<rect key="frame" x="0.0" y="0.0" width="315" height="25"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Zyi-hN-2EQ">
<rect key="frame" x="0.0" y="0.0" width="25" height="25"/>
@ -444,7 +325,7 @@
</subviews>
</stackView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="D5K-nv-4xv">
<rect key="frame" x="0.0" y="204" width="315" height="342"/>
<rect key="frame" x="0.0" y="45" width="315" height="342"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" spacing="30" translatesAutoresizingMaskIntoConstraints="NO" id="kn3-YB-OS0">
<rect key="frame" x="0.0" y="0.0" width="315" height="342"/>
@ -679,133 +560,14 @@
<constraint firstItem="kn3-YB-OS0" firstAttribute="top" secondItem="D5K-nv-4xv" secondAttribute="top" id="yMU-5Q-ZAX"/>
</constraints>
</view>
<stackView opaque="NO" contentMode="scaleToFill" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="dz6-Ov-vmR">
<rect key="frame" x="0.0" y="566" width="315" height="25"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8EX-Kp-2q9">
<rect key="frame" x="0.0" y="0.0" width="25" height="25"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="picture" translatesAutoresizingMaskIntoConstraints="NO" id="3Ha-K2-EiL">
<rect key="frame" x="2.5" y="2.5" width="20" height="20"/>
<constraints>
<constraint firstAttribute="width" constant="20" id="0Pd-7X-Cf0"/>
<constraint firstAttribute="height" constant="20" id="EKE-WH-xhy"/>
</constraints>
</imageView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="3Ha-K2-EiL" firstAttribute="top" secondItem="8EX-Kp-2q9" secondAttribute="top" constant="2.5" id="LMa-RW-u9n"/>
<constraint firstItem="3Ha-K2-EiL" firstAttribute="leading" secondItem="8EX-Kp-2q9" secondAttribute="leading" constant="2.5" id="Mif-Gp-CPj"/>
<constraint firstAttribute="bottom" secondItem="3Ha-K2-EiL" secondAttribute="bottom" constant="2.5" id="RUp-Cg-IVQ"/>
<constraint firstAttribute="trailing" secondItem="3Ha-K2-EiL" secondAttribute="trailing" constant="2.5" id="t4u-cR-m1Z"/>
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Additional ID Documents" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="60Q-Qk-qGc">
<rect key="frame" x="30" y="0.0" width="285" height="25"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="19"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wJY-To-abc">
<rect key="frame" x="0.0" y="611" width="315" height="94"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" spacing="30" translatesAutoresizingMaskIntoConstraints="NO" id="Uze-1a-gUa">
<rect key="frame" x="0.0" y="0.0" width="315" height="94"/>
<subviews>
<view opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Oh1-UA-AVd" userLabel="ViewFront">
<rect key="frame" x="0.0" y="0.0" width="315" height="94"/>
<subviews>
<view opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6Oj-J7-xSf">
<rect key="frame" x="2" y="2" width="98" height="90"/>
<subviews>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleAspectFit" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="1ap-cT-HAO">
<rect key="frame" x="0.0" y="0.0" width="98" height="90"/>
<state key="normal" image="ic_passport_picture"/>
</button>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="1ap-cT-HAO" firstAttribute="leading" secondItem="6Oj-J7-xSf" secondAttribute="leading" id="BkQ-8g-mk9"/>
<constraint firstItem="1ap-cT-HAO" firstAttribute="top" secondItem="6Oj-J7-xSf" secondAttribute="top" id="Fb3-WK-Agn"/>
<constraint firstAttribute="bottom" secondItem="1ap-cT-HAO" secondAttribute="bottom" id="OI3-gh-QLJ"/>
<constraint firstAttribute="trailing" secondItem="1ap-cT-HAO" secondAttribute="trailing" id="RJb-i9-ZCm"/>
<constraint firstAttribute="width" constant="98" id="aGX-dx-LLF"/>
</constraints>
</view>
<view opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cVx-Ot-ALo">
<rect key="frame" x="110" y="2" width="203" height="90"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="top" spacing="11" translatesAutoresizingMaskIntoConstraints="NO" id="TdD-O4-xXg">
<rect key="frame" x="0.0" y="19" width="203" height="52.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Additional ID" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9Ye-vp-Vy5">
<rect key="frame" x="0.0" y="0.0" width="86" height="17.5"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="15"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="lY3-Do-yEX">
<rect key="frame" x="0.0" y="28.5" width="58" height="24"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="10"/>
<state key="normal" title="View Sample">
<color key="titleColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/>
</state>
<connections>
<action selector="showSampleButton:" destination="HSb-ou-7T5" eventType="touchUpInside" id="vXa-qB-PhC"/>
</connections>
</button>
</subviews>
</stackView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="TdD-O4-xXg" firstAttribute="centerX" secondItem="cVx-Ot-ALo" secondAttribute="centerX" id="3CS-6W-pau"/>
<constraint firstItem="TdD-O4-xXg" firstAttribute="leading" secondItem="cVx-Ot-ALo" secondAttribute="leading" id="6Pv-7v-UeA"/>
<constraint firstAttribute="trailing" secondItem="TdD-O4-xXg" secondAttribute="trailing" id="mLY-ub-tsb"/>
<constraint firstItem="TdD-O4-xXg" firstAttribute="centerY" secondItem="cVx-Ot-ALo" secondAttribute="centerY" id="mlf-io-7p0"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="bottom" secondItem="cVx-Ot-ALo" secondAttribute="bottom" constant="2" id="9G0-NR-e4c"/>
<constraint firstAttribute="height" constant="94" id="Jfj-TA-9jk"/>
<constraint firstItem="6Oj-J7-xSf" firstAttribute="top" secondItem="Oh1-UA-AVd" secondAttribute="top" constant="2" id="Md3-si-kv8"/>
<constraint firstAttribute="bottom" secondItem="6Oj-J7-xSf" secondAttribute="bottom" constant="2" id="ZEc-9M-1fi"/>
<constraint firstItem="cVx-Ot-ALo" firstAttribute="leading" secondItem="6Oj-J7-xSf" secondAttribute="trailing" constant="10" id="iXl-Fi-4Yo"/>
<constraint firstAttribute="trailing" secondItem="cVx-Ot-ALo" secondAttribute="trailing" constant="2" id="qfd-8a-kLB"/>
<constraint firstItem="6Oj-J7-xSf" firstAttribute="leading" secondItem="Oh1-UA-AVd" secondAttribute="leading" constant="2" id="sPK-76-4nt"/>
<constraint firstItem="cVx-Ot-ALo" firstAttribute="top" secondItem="Oh1-UA-AVd" secondAttribute="top" constant="2" id="uXt-rA-Kbf"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
<integer key="value" value="5"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
</subviews>
</stackView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="Uze-1a-gUa" firstAttribute="top" secondItem="wJY-To-abc" secondAttribute="top" id="Lt6-Of-P69"/>
<constraint firstAttribute="bottom" secondItem="Uze-1a-gUa" secondAttribute="bottom" id="VOo-t0-MS3"/>
<constraint firstAttribute="trailing" secondItem="Uze-1a-gUa" secondAttribute="trailing" id="gqR-6d-bt8"/>
<constraint firstItem="Uze-1a-gUa" firstAttribute="leading" secondItem="wJY-To-abc" secondAttribute="leading" id="wIM-1o-oNr"/>
</constraints>
</view>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gNe-Qu-6aB">
<rect key="frame" x="0.0" y="725" width="315" height="50"/>
<rect key="frame" x="0.0" y="407" width="315" height="50"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="QBC-Fu-PsV">
<rect key="frame" x="0.0" y="795" width="315" height="45"/>
<rect key="frame" x="0.0" y="477" width="315" height="45"/>
<color key="backgroundColor" name="ThemeRed"/>
<constraints>
<constraint firstAttribute="height" constant="45" id="0FB-Ok-i85"/>
@ -857,10 +619,6 @@
</view>
<size key="freeformSize" width="375" height="1700"/>
<connections>
<outlet property="additionalIDContainer" destination="wJY-To-abc" id="hDR-he-gMv"/>
<outlet property="additionalIdButton" destination="1ap-cT-HAO" id="m3F-Ms-3UF"/>
<outlet property="additionalIdSample" destination="lY3-Do-yEX" id="ZPd-dD-PKO"/>
<outlet property="additionalIdType" destination="MkR-sA-RxH" id="tYF-rr-BcO"/>
<outlet property="address" destination="g6b-c1-elD" id="GrC-PX-mDf"/>
<outlet property="backIDContainer" destination="KUS-8w-FbG" id="63m-B3-fob"/>
<outlet property="backIdButton" destination="KQ2-op-cWR" id="bzS-Yr-ogk"/>
@ -868,9 +626,6 @@
<outlet property="businessType" destination="hX6-tX-ygh" id="zFI-C3-JBB"/>
<outlet property="emailAddress" destination="IsM-vf-1HP" id="cad-yn-b4z"/>
<outlet property="employerName" destination="4Ht-H7-uZe" id="a52-xn-3d4"/>
<outlet property="facePicSampleBttn" destination="Hd9-Ys-WuN" id="tEz-ih-QXC"/>
<outlet property="facePictureButton" destination="kDo-2B-xpO" id="SWi-Wb-l6g"/>
<outlet property="facePictureContainer" destination="PMC-6K-aRj" id="YpJ-7v-3Bd"/>
<outlet property="frontIDContainer" destination="m8s-Gg-2jO" id="Ia8-IA-JYY"/>
<outlet property="frontIdButton" destination="EJu-if-oSE" id="7AS-NX-s6o"/>
<outlet property="frontIdSample" destination="l8F-WP-lmv" id="Oit-D7-PIC"/>
@ -886,6 +641,7 @@
<outlet property="sideIdButton" destination="Zyf-eU-YL6" id="rBQ-BV-AB4"/>
<outlet property="sideIdSample" destination="wYc-6F-9AB" id="a2y-XQ-Cee"/>
<outlet property="sourceOfFund" destination="SVD-OG-9os" id="Ale-WC-rvy"/>
<outlet property="visaStatus" destination="JfT-uS-a2a" id="dkz-Kj-8Bs"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="8je-5K-XuW" userLabel="First Responder" sceneMemberID="firstResponder"/>

167
GME Remit/Modules/RegisterModules/UserAuthentication/ExistingUserKyc/User Interface/View/ExistingUserKycViewController.swift

@ -19,8 +19,6 @@ class ExistingUserKycViewController: UIViewController {
case frontID
case backID
case sideID
case facePicture
case anotherID
}
var step: NewRegisterViewController.Step = .first
@ -42,19 +40,16 @@ class ExistingUserKycViewController: UIViewController {
private let frontIDImageTrigger = BehaviorSubject<String?>(value: nil)
private let backIDImageTrigger = BehaviorSubject<String?>(value: nil)
private let sideIDImageTrigger = BehaviorSubject<String?>(value: nil)
private let faceImageTrigger = BehaviorSubject<String?>(value: nil)
private let anotherIDImageTrigger = BehaviorSubject<String?>(value: nil)
private let frontImageBase64 = BehaviorSubject<String?>(value: nil)
private let backIDImageBase64 = BehaviorSubject<String?>(value: nil)
private let sideIDImageBase64 = BehaviorSubject<String?>(value: nil)
private let faceImageBase64 = BehaviorSubject<String?>(value: nil)
private let anotherIDImageBase64 = BehaviorSubject<String?>(value: nil)
private var isForeigner = true
// MARK: IBOutlets
@IBOutlet weak var employerName: ValidationTextField!
@IBOutlet weak var visaStatus: ValidationTextField!
@IBOutlet weak var sourceOfFund: ValidationTextField!
@IBOutlet weak var monthlyIncome: ValidationTextField!
@IBOutlet weak var mobileNumber: ValidationTextField!
@ -62,7 +57,6 @@ class ExistingUserKycViewController: UIViewController {
@IBOutlet weak var emailAddress: ValidationTextField!
@IBOutlet weak var address: ValidationTextField!
@IBOutlet weak var idType: ValidationTextField!
@IBOutlet weak var additionalIdType: ValidationTextField!
@IBOutlet weak var gpsButton: UIButton!
@IBOutlet weak var personalInfoSaveBttn: UIButton!
@ -71,23 +65,17 @@ class ExistingUserKycViewController: UIViewController {
@IBOutlet weak var personalInformationStack: UIStackView!
@IBOutlet weak var pictureUploadStack: UIStackView!
@IBOutlet weak var facePictureContainer: UIView!
@IBOutlet weak var frontIDContainer: UIView!
@IBOutlet weak var backIDContainer: UIView!
@IBOutlet weak var sideIDContainer: UIView!
@IBOutlet weak var additionalIDContainer: UIView!
@IBOutlet weak var facePicSampleBttn: UIButton!
@IBOutlet weak var frontIdSample: UIButton!
@IBOutlet weak var backIdSample: UIButton!
@IBOutlet weak var sideIdSample: UIButton!
@IBOutlet weak var additionalIdSample: UIButton!
@IBOutlet weak var facePictureButton: UIButton!
@IBOutlet weak var frontIdButton: UIButton!
@IBOutlet weak var backIdButton: UIButton!
@IBOutlet weak var sideIdButton: UIButton!
@IBOutlet weak var additionalIdButton: UIButton!
// MARK: VC's Life cycle
@ -150,10 +138,6 @@ class ExistingUserKycViewController: UIViewController {
image = #imageLiteral(resourceName: "sampleFront")
case .sideID:
image = #imageLiteral(resourceName: "sampleFront")
case .facePicture:
image = #imageLiteral(resourceName: "sampleFront")
case .anotherID:
image = #imageLiteral(resourceName: "sampleFront")
}
// show alert
let alertVC = PMAlertController(title: "", description: "", image: image, style: .alert)
@ -191,19 +175,11 @@ class ExistingUserKycViewController: UIViewController {
monthlyIncome.useAsDropDown(items: nil)
businessType.useAsDropDown(items: nil)
idType.useAsDropDown(items: nil)
additionalIdType.useAsDropDown(items: nil)
visaStatus.useAsDropDown(items: nil)
personalInfoSaveBttn.layer.cornerRadius = 5
pictureSaveBttn.layer.cornerRadius = 5
additionalIdButton.layer.cornerRadius = 5
additionalIdButton.layer.borderWidth = 1
additionalIdButton.layer.borderColor = UIColor.themeText.cgColor
facePictureButton.layer.cornerRadius = 5
facePictureButton.layer.borderWidth = 1
facePictureButton.layer.borderColor = UIColor.themeText.cgColor
frontIdButton.layer.cornerRadius = 5
frontIdButton.layer.borderWidth = 1
frontIdButton.layer.borderColor = UIColor.themeText.cgColor
@ -224,7 +200,9 @@ class ExistingUserKycViewController: UIViewController {
emailAddress.validCondition = {$0.isEmail()}
address.validCondition = {!$0.isEmpty && $0.count < 50}
idType.validCondition = {!$0.isEmpty}
additionalIdType.validCondition = {!$0.isEmpty}
visaStatus.validCondition = {!$0.isEmpty}
visaStatus.placeholder = "Visa Status";
}
private func setUIBinding() {
@ -233,11 +211,6 @@ class ExistingUserKycViewController: UIViewController {
self?.multiMediaManager?.openPicker(mode: UIImagePickerController.CameraCaptureMode.photo)
}.disposed(by: disposeBag)
additionalIdButton.rx.tap.bind {[weak self] in
self?.photoType = .anotherID
self?.multiMediaManager?.openPicker(mode: UIImagePickerController.CameraCaptureMode.photo)
}.disposed(by: disposeBag)
backIdButton.rx.tap.bind {[weak self] in
self?.photoType = .backID
self?.multiMediaManager?.openPicker(mode: UIImagePickerController.CameraCaptureMode.photo)
@ -248,11 +221,6 @@ class ExistingUserKycViewController: UIViewController {
self?.multiMediaManager?.openPicker(mode: UIImagePickerController.CameraCaptureMode.photo)
}.disposed(by: disposeBag)
facePictureButton.rx.tap.bind {[weak self] in
self?.photoType = .facePicture
self?.multiMediaManager?.openPicker(mode: UIImagePickerController.CameraCaptureMode.photo)
}.disposed(by: disposeBag)
frontIDImageTrigger
.asDriverOnErrorJustComplete()
.drive(onNext: {[weak self] in
@ -321,39 +289,6 @@ class ExistingUserKycViewController: UIViewController {
}).disposed(by: disposeBag)
anotherIDImageTrigger
.asDriverOnErrorJustComplete()
.drive(onNext: {[weak self] in
if let imageData = $0 {
if let dataDecoded = Data(base64Encoded: imageData, options: .ignoreUnknownCharacters) {
DispatchQueue.main.async {
self?.additionalIdButton.setImage(UIImage(data: dataDecoded), for: .normal)
self?.additionalIdButton.addBlur()
self?.hideBorder(view: self?.additionalIDContainer)
self?.anotherIDImageBase64.onNext(imageData)
}
} else if let url = URL(string: imageData) {
DispatchQueue.main.async {
self?.showProgressHud()
self?.additionalIdButton.kf.setImage(with: url, for: .normal) { result in
self?.hideProgressHud()
switch result {
case .success(let value):
self?.anotherIDImageBase64.onNext(value.image.toBase64())
case .failure(let error):
print("Job failed: \(error.localizedDescription)")
}
}
self?.additionalIdButton.addBlur()
self?.hideBorder(view: self?.additionalIDContainer)
}
}
} else {
self?.anotherIDImageBase64.onNext(nil)
self?.additionalIdButton.setImage(UIImage(named: "ic_another_id_picture"), for: .normal)
}
}).disposed(by: disposeBag)
sideIDImageTrigger
.asDriverOnErrorJustComplete()
.drive(onNext: {[weak self] in
@ -388,40 +323,6 @@ class ExistingUserKycViewController: UIViewController {
}).disposed(by: disposeBag)
faceImageTrigger
.asDriverOnErrorJustComplete()
.drive(onNext: {[weak self] in
if let imageData = $0 {
if let dataDecoded = Data(base64Encoded: imageData, options: .ignoreUnknownCharacters) {
DispatchQueue.main.async {
self?.facePictureButton.setImage(UIImage(data: dataDecoded), for: .normal)
self?.facePictureButton.addBlur()
self?.hideBorder(view: self?.facePictureContainer)
self?.faceImageBase64.onNext(imageData)
}
} else if let url = URL(string: imageData) {
DispatchQueue.main.async {
self?.showProgressHud()
self?.facePictureButton.kf.setImage(with: url, for: .normal) { result in
self?.hideProgressHud()
switch result {
case .success(let value):
self?.faceImageBase64.onNext(value.image.toBase64())
case .failure(let error):
print("Job failed: \(error.localizedDescription)")
}
}
self?.facePictureButton.addBlur()
self?.hideBorder(view: self?.facePictureContainer)
}
}
} else {
self?.faceImageBase64.onNext(nil)
self?.facePictureButton.setImage(UIImage(named: "ic_passport_picture"), for: .normal)
}
}).disposed(by: disposeBag)
emailAddress.rx.filterBy(.alphabetNumbericSpecial).disposed(by: disposeBag)
address.rx.filterBy(.alphabet, isUppercase: true).disposed(by: disposeBag)
@ -441,7 +342,7 @@ class ExistingUserKycViewController: UIViewController {
monthlyIncome.valid,
businessType.valid,
idType.valid,
additionalIdType.valid
visaStatus.valid
]
).map { $0.allSatisfy { $0 } }
.distinctUntilChanged()
@ -451,10 +352,14 @@ class ExistingUserKycViewController: UIViewController {
frontImageBase64.map {[weak self] in
self?.isForeigner ?? true ? $0 != nil : true
},
Observable.combineLatest(
idType.selectedItem.map {$0 != nil},
anotherIDImageBase64.map {$0 != nil}
).map { $0 ? $1 : true}
backIDImageBase64.map {[weak self] in
self?.isForeigner ?? true ? true : $0 != nil
},
sideIDImageBase64.map {[weak self] in
self?.isForeigner ?? true ? true : $0 != nil
}
]
).map { $0.allSatisfy { $0 } }
.distinctUntilChanged()
@ -462,17 +367,15 @@ class ExistingUserKycViewController: UIViewController {
let editingPersonalInfo = Observable.combineLatest(
emailAddress.rx.controlEvent(.editingChanged),
address.rx.controlEvent(.editingChanged),
employerName.rx.controlEvent(.editingChanged),
visaStatus.rx.controlEvent(.editingChanged),
sourceOfFund.rx.controlEvent(.editingChanged),
monthlyIncome.rx.controlEvent(.editingChanged),
businessType.rx.controlEvent(.editingChanged),
idType.rx.controlEvent(.editingChanged),
additionalIdType.rx.controlEvent(.editingChanged)
idType.rx.controlEvent(.editingChanged)
).mapToVoid().asDriverOnErrorJustComplete()
let editingPictureInfo = Observable.combineLatest(
faceImageBase64,
anotherIDImageBase64,
frontImageBase64,
backIDImageBase64
).mapToVoid().asDriverOnErrorJustComplete()
@ -481,12 +384,13 @@ class ExistingUserKycViewController: UIViewController {
viewWillAppear: viewWillAppear,
sendLocation: sendLocation.asDriverOnErrorJustComplete(),
employerName: employerName.rx.text.orEmpty.asDriverOnErrorJustComplete(),
sourceOfFund: sourceOfFund.selectedItem.map {$0 as? KeyValue}.asDriverOnErrorJustComplete(),
monthlyIncome: monthlyIncome.selectedItem.map {$0 as? KeyValue}.asDriverOnErrorJustComplete(),
businessType: businessType.selectedItem.map {$0 as? KeyValue}.asDriverOnErrorJustComplete(),
visaStatus: visaStatus.selectedItem.map {$0 as? KeyValue}.asDriverOnErrorJustComplete(),
idType: idType.selectedItem.map {$0 as? KeyValue}.asDriverOnErrorJustComplete(),
additionalIdType: additionalIdType.selectedItem.map {$0 as? KeyValue}.asDriverOnErrorJustComplete(),
employerName: employerName.rx.text.orEmpty.asDriverOnErrorJustComplete(),
mobile: mobileNumber.rx.text.orEmpty.asDriverOnErrorJustComplete(),
email: emailAddress.rx.text.orEmpty.asDriverOnErrorJustComplete(),
address: address.rx.text.orEmpty.asDriverOnErrorJustComplete(),
@ -497,8 +401,6 @@ class ExistingUserKycViewController: UIViewController {
frontIDImage: frontImageBase64.asDriverOnErrorJustComplete(),
backIDImage: backIDImageBase64.asDriverOnErrorJustComplete(),
sideIDImage: sideIDImageBase64.asDriverOnErrorJustComplete(),
additionalIDImage: anotherIDImageBase64.asDriverOnErrorJustComplete(),
facePicture: faceImageBase64.asDriverOnErrorJustComplete(),
isValidPictures: isValidPictures.asDriverOnErrorJustComplete(),
editingPictureInfo: editingPictureInfo,
submit: pictureSaveBttn.rx.tap.asDriverOnErrorJustComplete()
@ -526,26 +428,26 @@ class ExistingUserKycViewController: UIViewController {
self?.idType.useAsDropDown(with: configure, items: $0)
}).disposed(by: disposeBag)
output.additionaIDType.drive(onNext: {[weak self] in
let configure = TablePresenterConfiguration(presenterTitle: "select_id_type_text".localized())
self?.additionalIdType.useAsDropDown(with: configure, items: $0)
}).disposed(by: disposeBag)
output.sourceOfFund.drive(onNext: {[weak self] in
let configure = TablePresenterConfiguration(presenterTitle: "select_id_type_text".localized())
let configure = TablePresenterConfiguration(presenterTitle: "select_source_of_fund_text".localized())
self?.sourceOfFund.useAsDropDown(with: configure, items: $0)
}).disposed(by: disposeBag)
output.monthlyIncome.drive(onNext: {[weak self] in
let configure = TablePresenterConfiguration(presenterTitle: "select_id_type_text".localized())
let configure = TablePresenterConfiguration(presenterTitle: "select_monthly_income".localized())
self?.monthlyIncome.useAsDropDown(with: configure, items: $0)
}).disposed(by: disposeBag)
output.busniessType.drive(onNext: {[weak self] in
let configure = TablePresenterConfiguration(presenterTitle: "select_id_type_text".localized())
let configure = TablePresenterConfiguration(presenterTitle: "select_business_type".localized())
self?.businessType.useAsDropDown(with: configure, items: $0)
}).disposed(by: disposeBag)
output.visaStatus.drive(onNext: {[weak self] in
let configure = TablePresenterConfiguration(presenterTitle: "select_visa_status".localized())
self?.visaStatus.useAsDropDown(with: configure, items: $0)
}).disposed(by: disposeBag)
output.model.drive(onNext: {[weak self] model in
guard let personalInformation = model.personalInformation else { return }
@ -558,7 +460,7 @@ class ExistingUserKycViewController: UIViewController {
self?.mobileNumber.text = personalInformation.mobile
self?.mobileNumber.sendActions(for: .editingChanged)
self?.employerName.text = personalInformation.occupation
self?.employerName.text = personalInformation.employeerName
self?.employerName.sendActions(for: .editingChanged)
self?.sourceOfFund.didSelect(
@ -570,13 +472,14 @@ class ExistingUserKycViewController: UIViewController {
self?.businessType.didSelect(
item: model.businessType?.first {$0.id == personalInformation.businessType}
)
self?.additionalIdType.didSelect(
item: model.additionalIdType?.first {$0.id == personalInformation.additionalIdType}
)
self?.idType.didSelect(
item: model.idType?.first {$0.id == personalInformation.idType}
)
self?.visaStatus.didSelect(
item: model.visaStatus?.first {$0.id == personalInformation.visaStatus}
)
}).disposed(by: disposeBag)
output.isSetPersonalInfoModel
@ -703,10 +606,6 @@ extension ExistingUserKycViewController: ImageCropperDelegate {
backIDImageTrigger.onNext(image.toBase64())
case .sideID:
sideIDImageTrigger.onNext(image.toBase64())
case .facePicture:
faceImageTrigger.onNext(image.toBase64())
case .anotherID:
anotherIDImageTrigger.onNext(image.toBase64())
}
}

4
GME Remit/Modules/RegisterModules/UserAuthentication/KYCVerifyStep1/Application Logic/Model/KYCInfoModel.swift

@ -10,12 +10,12 @@ import ObjectMapper
struct KYCInfoModel: Mappable {
var occupations: [KeyValue]?
var monthlyIncome: [KeyValue]?
var sourceOfFund: [KeyValue]?
var businessType: [KeyValue]?
var idType: [KeyValue]?
var additionalIdType: [KeyValue]?
var visaStatus: [KeyValue]?
var personalInformation: PersonalInfoModel?
var pictures: PictureInfoModel?
@ -29,7 +29,7 @@ struct KYCInfoModel: Mappable {
idType <- map["IdType"]
personalInformation <- map["PersonalInformation"]
pictures <- map["Pictures"]
occupations <- map["Occupation"]
visaStatus <- map["VisaStatus"]
monthlyIncome <- map["MonthlyIncome"]
sourceOfFund <- map["SourceOfFund"]
businessType <- map["BusniessType"]

34
GME Remit/Modules/RegisterModules/UserAuthentication/KYCVerifyStep1/Application Logic/Model/PersonalInfoModel.swift

@ -11,7 +11,6 @@ import ObjectMapper
struct PersonalInfoModel: Mappable {
var email: String?
var address: String?
var occupation: String?
var businessType: String?
var sourceOfFund: String?
var monthlyIncome: String?
@ -19,22 +18,25 @@ struct PersonalInfoModel: Mappable {
var idType: String?
var additionalIdType: String?
var nativeCountry: String?
var visaStatus: String?
var employeerName: String?
init(
email: String?,
address: String?,
occupation: String?,
visaStatus: String?,
sourceOfFund: String?,
monthlyIncome: String?,
mobile: String?,
idType: String?,
additionalIdType: String?,
businessType: String?,
nativeCountry: String?
nativeCountry: String?,
employeerName: String?
) {
self.email = email
self.address = address
self.occupation = occupation
self.visaStatus = visaStatus
self.sourceOfFund = sourceOfFund
self.monthlyIncome = monthlyIncome
self.mobile = mobile
@ -42,6 +44,7 @@ struct PersonalInfoModel: Mappable {
self.additionalIdType = additionalIdType
self.businessType = businessType
self.nativeCountry = nativeCountry
self.employeerName = employeerName
}
init?(map: Map) {
@ -51,7 +54,7 @@ struct PersonalInfoModel: Mappable {
mutating func mapping(map: Map) {
email <- map["email"]
address <- map["additionalAddress"]
occupation <- map["occupation"]
visaStatus <- map["occupation"]
sourceOfFund <- map["sourceOfFund"]
monthlyIncome <- map["monthlyIncome"]
mobile <- map["mobile"]
@ -59,6 +62,7 @@ struct PersonalInfoModel: Mappable {
additionalIdType <- map["additionalIdType"]
businessType <- map["businessType"]
nativeCountry <- map["nativeCountry"]
employeerName <- map["employeerName"]
}
}
@ -66,14 +70,15 @@ extension PersonalInfoModel: Equatable {
static func == (lhs: Self, rhs: Self) -> Bool {
return lhs.email == rhs.email &&
lhs.address == rhs.address &&
lhs.occupation == rhs.occupation &&
lhs.visaStatus == rhs.visaStatus &&
lhs.sourceOfFund == rhs.sourceOfFund &&
lhs.monthlyIncome == rhs.monthlyIncome &&
lhs.mobile == rhs.mobile &&
lhs.idType == rhs.idType &&
lhs.additionalIdType == rhs.additionalIdType &&
lhs.businessType == rhs.businessType &&
lhs.nativeCountry == rhs.nativeCountry
lhs.nativeCountry == rhs.nativeCountry &&
lhs.employeerName == rhs.employeerName
}
}
@ -81,39 +86,42 @@ extension PersonalInfoModel: PropertyUtility {
func isFilledFully() -> Bool {
return email != nil &&
address != nil &&
occupation != nil &&
visaStatus != nil &&
sourceOfFund != nil &&
monthlyIncome != nil &&
mobile != nil &&
idType != nil &&
additionalIdType != nil &&
businessType != nil &&
nativeCountry != nil
nativeCountry != nil &&
employeerName != nil
}
func isNilFully() -> Bool {
return email == nil &&
address == nil &&
occupation == nil &&
visaStatus == nil &&
sourceOfFund == nil &&
monthlyIncome == nil &&
mobile == nil &&
idType == nil &&
additionalIdType == nil &&
businessType == nil &&
nativeCountry == nil
nativeCountry == nil &&
employeerName == nil
}
func isHasEmptyValue() -> Bool {
return email?.isEmpty ?? true ||
address?.isEmpty ?? true ||
occupation?.isEmpty ?? true ||
visaStatus?.isEmpty ?? true ||
sourceOfFund?.isEmpty ?? true ||
monthlyIncome?.isEmpty ?? true ||
mobile?.isEmpty ?? true ||
idType?.isEmpty ?? true ||
additionalIdType?.isEmpty ?? true ||
businessType?.isEmpty ?? true ||
nativeCountry?.isEmpty ?? true
nativeCountry?.isEmpty ?? true ||
employeerName?.isEmpty ?? true
}
}

45
GME Remit/Modules/RegisterModules/UserAuthentication/KYCVerifyStep1/User Interface/Presenter/KYCVerifyStep1Presenter.swift

@ -24,7 +24,6 @@ class KYCVerifyStep1Presenter: ViewModelType {
let viewWillAppear: Driver<Bool>
let sendLocation: Driver<CLLocation>
let occupation: Driver<KeyValue?>
let sourceOfFund: Driver<KeyValue?>
let monthlyIncome: Driver<KeyValue?>
let businessType: Driver<KeyValue?>
@ -32,6 +31,7 @@ class KYCVerifyStep1Presenter: ViewModelType {
let additionalIdType: Driver<KeyValue?>
let mobile: Driver<String>
let employeerName: Driver<String>
let email: Driver<String>
let address: Driver<String>
@ -59,7 +59,6 @@ class KYCVerifyStep1Presenter: ViewModelType {
let idTypes: Driver<[KeyValue]?>
let additionaIDType: Driver<[KeyValue]?>
let occupations: Driver<[KeyValue]?>
let busniessType: Driver<[KeyValue]?>
let sourceOfFund: Driver<[KeyValue]?>
let monthlyIncome: Driver<[KeyValue]?>
@ -94,13 +93,13 @@ class KYCVerifyStep1Presenter: ViewModelType {
).map { (isValid, frontIdImage, backIdImage, sideIdImage, additionalIdImage, facePicture) -> PictureInfoModel? in
return isValid ? PictureInfoModel(idFront: frontIdImage, idBack: backIdImage, idSide: sideIdImage, additionalId: additionalIdImage, facePicture: facePicture) : nil
}
/*
let newPersonalInfo = Driver.combineLatest(
input.isValidPersonalInfo,
input.idType,
input.additionalIdType,
Driver.combineLatest(
input.occupation,
input.employeerName,
input.sourceOfFund,
input.monthlyIncome,
input.mobile,
@ -108,18 +107,46 @@ class KYCVerifyStep1Presenter: ViewModelType {
input.email,
input.address,
model.map{$0.personalInformation?.nativeCountry}.asDriverOnErrorJustComplete()
).map({ (occupation, sourceOfFund, monthlyIncome, mobile, businessType, email, address, nativeCountry) -> PersonalInfoModel in
).map({ (employeerName, sourceOfFund, monthlyIncome, mobile, businessType, email, address, nativeCountry) -> PersonalInfoModel in
return PersonalInfoModel(
email: email,
address: address,
occupation: occupation?.id,
visaStatus: nil,
sourceOfFund: sourceOfFund?.id,
monthlyIncome: monthlyIncome?.id,
mobile: mobile,
idType: nil,
additionalIdType: nil,
businessType: businessType?.id,
nativeCountry: nativeCountry)
nativeCountry: nativeCountry,
employeerName: employeerName
)
})
).map { (isValid, idType, additionalIdType, info) -> PersonalInfoModel? in
if isValid{
var personalInfo = info
personalInfo.idType = idType?.id
personalInfo.additionalIdType = additionalIdType?.id
return personalInfo
}
return nil
}*/
let newPersonalInfo = Driver.combineLatest(
input.isValidPersonalInfo,
input.idType,
input.additionalIdType,
Driver.combineLatest(
input.employeerName,
input.sourceOfFund,
input.monthlyIncome,
input.mobile,
input.businessType,
input.email,
input.address,
model.map{$0.personalInformation?.nativeCountry}.asDriverOnErrorJustComplete()
).map({ (employerName, sourceOfFund, monthlyIncome, mobile, businessType, email, address, nativeCountry) -> PersonalInfoModel in
return PersonalInfoModel(email: email, address: address, visaStatus: nil, sourceOfFund: sourceOfFund?.id, monthlyIncome: monthlyIncome?.id, mobile: mobile, idType: nil, additionalIdType: nil, businessType: businessType?.id, nativeCountry: nativeCountry, employeerName: employerName)
})
).map { (isValid, idType, additionalIdType, info) -> PersonalInfoModel? in
if isValid{
@ -225,7 +252,6 @@ class KYCVerifyStep1Presenter: ViewModelType {
model: model.asDriverOnErrorJustComplete(),
idTypes: model.map {$0.idType}.asDriverOnErrorJustComplete(),
additionaIDType: model.map {$0.additionalIdType}.asDriverOnErrorJustComplete(),
occupations: model.map {$0.occupations}.asDriverOnErrorJustComplete(),
busniessType: model.map {$0.businessType}.asDriverOnErrorJustComplete(),
sourceOfFund: model.map {$0.sourceOfFund}.asDriverOnErrorJustComplete(),
monthlyIncome: model.map {$0.monthlyIncome}.asDriverOnErrorJustComplete(),
@ -271,6 +297,9 @@ extension KYCVerifyStep1Presenter: KYCVerifyStep1InteractorOutput {
case .innerStep1:
storedPersonalInfo.onNext(storedModel.personalInformation)
storedPersonalSuccess.onNext(message)
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
self.storedPersonalSuccess.onNext(nil)
}
case .innerStep2:
storedPictureInformation.onNext(storedModel.pictures)

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

@ -65,7 +65,7 @@
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="VPI-Qr-7ea">
<rect key="frame" x="0.0" y="30" width="315" height="416"/>
<subviews>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Occupation" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="TV5-Pc-Gg6" customClass="ValidationTextField" customModule="Fast_Remit" customModuleProvider="target">
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Employer Name" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="TV5-Pc-Gg6" customClass="ValidationTextField" customModule="Fast_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="315" height="45"/>
<color key="textColor" name="ThemeText"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="14"/>

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

@ -195,7 +195,6 @@ extension KYCVerifyStep1ViewController {
primaryInfoDocumentImageView.setRenderingMode(with: .themeText)
additionalIDImageView.setRenderingMode(with: .themeText)
selectOccupationTextField.useAsDropDown(items: nil)
sourceOfFundTextField.useAsDropDown(items: nil)
monthlyIncomeTextField.useAsDropDown(items: nil)
businessTypeTextField.useAsDropDown(items: nil)
@ -228,13 +227,15 @@ extension KYCVerifyStep1ViewController {
selectOccupationTextField.validCondition = {!$0.isEmpty}
sourceOfFundTextField.validCondition = {!$0.isEmpty}
monthlyIncomeTextField.validCondition = {!$0.isEmpty}
mobileNumberTextField.validCondition = {!$0.isEmpty && $0.count > 8}
mobileNumberTextField.validCondition = {!$0.isEmpty && $0.count == 11}
businessTypeTextField.validCondition = {!$0.isEmpty}
emailTextField.validCondition = {$0.isEmail()}
addressTextField.validCondition = {!$0.isEmpty && $0.count < 50}
idTypeTextField.validCondition = {!$0.isEmpty}
additionalIDTextField.validCondition = {!$0.isEmpty}
selectOccupationTextField.placeholder = "Employer Name";
}
private func setUIBinding() {
@ -461,10 +462,14 @@ extension KYCVerifyStep1ViewController {
frontImageBase64.map {[weak self] in
self?.isForeigner ?? true ? $0 != nil : true
},
Observable.combineLatest(
idTypeTextField.selectedItem.map {$0 != nil},
anotherIDImageBase64.map {$0 != nil}
).map { $0 ? $1 : true}
backIDImageBase64.map {[weak self] in
self?.isForeigner ?? true ? true : $0 != nil
},
sideIDImageBase64.map {[weak self] in
self?.isForeigner ?? true ? true : $0 != nil
}
]
).map { $0.allSatisfy { $0 } }
.distinctUntilChanged()
@ -491,13 +496,13 @@ extension KYCVerifyStep1ViewController {
viewWillAppear: viewWillAppear,
sendLocation: sendLocation.asDriverOnErrorJustComplete(),
occupation: selectOccupationTextField.selectedItem.map {$0 as? KeyValue}.asDriverOnErrorJustComplete(),
sourceOfFund: sourceOfFundTextField.selectedItem.map {$0 as? KeyValue}.asDriverOnErrorJustComplete(),
monthlyIncome: monthlyIncomeTextField.selectedItem.map {$0 as? KeyValue}.asDriverOnErrorJustComplete(),
businessType: businessTypeTextField.selectedItem.map {$0 as? KeyValue}.asDriverOnErrorJustComplete(),
idType: idTypeTextField.selectedItem.map {$0 as? KeyValue}.asDriverOnErrorJustComplete(),
additionalIdType: additionalIDTextField.selectedItem.map {$0 as? KeyValue}.asDriverOnErrorJustComplete(),
mobile: mobileNumberTextField.rx.text.orEmpty.asDriverOnErrorJustComplete(),
employeerName: selectOccupationTextField.rx.text.orEmpty.asDriverOnErrorJustComplete(),
email: emailTextField.rx.text.orEmpty.asDriverOnErrorJustComplete(),
address: addressTextField.rx.text.orEmpty.asDriverOnErrorJustComplete(),
@ -537,29 +542,25 @@ extension KYCVerifyStep1ViewController {
}).disposed(by: disposeBag)
output.additionaIDType.drive(onNext: {[weak self] in
let configure = TablePresenterConfiguration(presenterTitle: "select_id_type_text".localized())
let configure = TablePresenterConfiguration(presenterTitle: "select_additionalId_type_text".localized())
self?.additionalIDTextField.useAsDropDown(with: configure, items: $0)
}).disposed(by: disposeBag)
output.sourceOfFund.drive(onNext: {[weak self] in
let configure = TablePresenterConfiguration(presenterTitle: "select_id_type_text".localized())
let configure = TablePresenterConfiguration(presenterTitle: "select_source_of_fund_text".localized())
self?.sourceOfFundTextField.useAsDropDown(with: configure, items: $0)
}).disposed(by: disposeBag)
output.monthlyIncome.drive(onNext: {[weak self] in
let configure = TablePresenterConfiguration(presenterTitle: "select_id_type_text".localized())
let configure = TablePresenterConfiguration(presenterTitle: "select_monthly_income".localized())
self?.monthlyIncomeTextField.useAsDropDown(with: configure, items: $0)
}).disposed(by: disposeBag)
output.busniessType.drive(onNext: {[weak self] in
let configure = TablePresenterConfiguration(presenterTitle: "select_id_type_text".localized())
let configure = TablePresenterConfiguration(presenterTitle: "select_business_type".localized())
self?.businessTypeTextField.useAsDropDown(with: configure, items: $0)
}).disposed(by: disposeBag)
output.occupations.drive(onNext: {[weak self] in
let configure = TablePresenterConfiguration(presenterTitle: "occupation_placeholder_text".localized())
self?.selectOccupationTextField.useAsDropDown(with: configure, items: $0)
}).disposed(by: disposeBag)
output.model.drive(onNext: {[weak self] model in
guard let personalInformation = model.personalInformation else { return }
@ -573,9 +574,8 @@ extension KYCVerifyStep1ViewController {
self?.mobileNumberTextField.text = personalInformation.mobile
self?.mobileNumberTextField.sendActions(for: .editingChanged)
self?.selectOccupationTextField.didSelect(
item: model.occupations?.first {$0.id == personalInformation.occupation}
)
self?.selectOccupationTextField.text = personalInformation.employeerName
self?.selectOccupationTextField.sendActions(for: .editingChanged)
self?.sourceOfFundTextField.didSelect(
item: model.sourceOfFund?.first {$0.id == personalInformation.sourceOfFund}
@ -610,7 +610,6 @@ extension KYCVerifyStep1ViewController {
self.isFirst = false
self.delegate?.newRegister(self, currentStep: .first, nextStep: .upload)
}
// self.delegate?.newRegister(self, currentStep: .first, nextStep: .upload)
}).disposed(by: disposeBag)
output.storedSuccess

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

@ -28,13 +28,9 @@ extension NewRegisterWireframe: NewRegisterWireframeInput {
func getMainView() -> UIViewController {
if selectedWireframe == "ExistingUser" {
print("selectedWireframe is::\(selectedWireframe)")
print("existingUser")
step1VC = ExistingUserKycWireframe().getMainView(with: self, step: .first)
step2VC = ExistingUserKycWireframe().getMainView(with: self, step: .upload)
}else {
print("in kyc verify")
print("selectedWireframe is::\(selectedWireframe)")
step1VC = KYCVerifyStep1Wireframe().getMainView(with: self, step: .first)
step2VC = KYCVerifyStep1Wireframe().getMainView(with: self, step: .upload)
}
@ -78,7 +74,6 @@ extension NewRegisterWireframe: NewRegisterWireframeInput {
okTitle: "ok_text".localized()
) {[weak self] in
guard let `self` = self else {return}
if self.view.presentingViewController != nil {
self.view.dismiss(animated: true) {
}

10
GME Remit/Modules/RemittanceModules/InboundModules/InboundReceipt/User Interface/View/InboundReceipt.storyboard

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16096" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15705" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina4_0" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16086"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15706"/>
<capability name="Named colors" minToolsVersion="9.0"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@ -96,7 +96,7 @@
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7GG-Qf-Gws">
<rect key="frame" x="137.5" y="0.0" width="40" height="40"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_gme_logo" translatesAutoresizingMaskIntoConstraints="NO" id="os0-mb-2dT">
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="jme_launch_icon" translatesAutoresizingMaskIntoConstraints="NO" id="os0-mb-2dT">
<rect key="frame" x="7" y="7" width="26" height="26"/>
</imageView>
</subviews>
@ -770,12 +770,11 @@
<point key="canvasLocation" x="505.3125" y="226.05633802816902"/>
</scene>
</scenes>
<color key="tintColor" red="0.78177064659999995" green="0.55228364470000002" blue="0.018981300289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<resources>
<image name="flag_cambodia" width="512" height="512"/>
<image name="ibk" width="100" height="66"/>
<image name="ic_gme_logo" width="120" height="120"/>
<image name="ic_recipient_bg" width="355" height="226"/>
<image name="jme_launch_icon" width="512" height="512"/>
<namedColor name="ThemeMainBackground">
<color red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
@ -786,4 +785,5 @@
<color red="0.28999999165534973" green="0.28999999165534973" blue="0.28999999165534973" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
</resources>
<color key="tintColor" red="0.78177064659999995" green="0.55228364470000002" blue="0.018981300289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</document>

46
GME Remit/Modules/RemittanceModules/OverseasModules/PINView/PINKeyboardView.xib

@ -10,7 +10,7 @@
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<viewController id="eZb-O9-KwV" customClass="PINKeyboardView" customModule="Fast_Remit" customModuleProvider="target">
<viewController id="eZb-O9-KwV" customClass="PINKeyboardView" customModule="JME_Remit" customModuleProvider="target">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="1Nd-Cx-bNb"/>
<viewControllerLayoutGuide type="bottom" id="lR7-xf-1EX"/>
@ -22,7 +22,7 @@
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="O4o-Ks-4Ii">
<rect key="frame" x="0.0" y="0.0" width="375" height="267"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="app logo" translatesAutoresizingMaskIntoConstraints="NO" id="hVx-18-l1J" customClass="PhotoImageView" customModule="Fast_Remit" customModuleProvider="target">
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="PinSecurity" translatesAutoresizingMaskIntoConstraints="NO" id="hVx-18-l1J" customClass="PhotoImageView" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="143.5" y="65.5" width="88" height="88.5"/>
<constraints>
<constraint firstAttribute="width" secondItem="hVx-18-l1J" secondAttribute="height" multiplier="1:1" id="wcK-td-OD3"/>
@ -40,22 +40,22 @@
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="mOX-iC-s3s">
<rect key="frame" x="80" y="8" width="199" height="17.5"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="y48-OI-bV6" userLabel="first" customClass="Indicator" customModule="Fast_Remit" customModuleProvider="target">
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="y48-OI-bV6" userLabel="first" customClass="Indicator" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="16.5" height="17.5"/>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EvL-fK-aNd" userLabel="second" customClass="Indicator" customModule="Fast_Remit" customModuleProvider="target">
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EvL-fK-aNd" userLabel="second" customClass="Indicator" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="36.5" y="0.0" width="16.5" height="17.5"/>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ty0-rX-vyo" userLabel="third" customClass="Indicator" customModule="Fast_Remit" customModuleProvider="target">
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ty0-rX-vyo" userLabel="third" customClass="Indicator" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="73" y="0.0" width="16.5" height="17.5"/>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="nQv-Y6-U7g" userLabel="four" customClass="Indicator" customModule="Fast_Remit" customModuleProvider="target">
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="nQv-Y6-U7g" userLabel="four" customClass="Indicator" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="109.5" y="0.0" width="16.5" height="17.5"/>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dMS-VL-QCd" userLabel="five" customClass="Indicator" customModule="Fast_Remit" customModuleProvider="target">
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dMS-VL-QCd" userLabel="five" customClass="Indicator" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="146" y="0.0" width="16.5" height="17.5"/>
</view>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zL8-cC-hXP" userLabel="six" customClass="Indicator" customModule="Fast_Remit" customModuleProvider="target">
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zL8-cC-hXP" userLabel="six" customClass="Indicator" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="182.5" y="0.0" width="16.5" height="17.5"/>
</view>
</subviews>
@ -96,7 +96,7 @@
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xRu-9U-A1v" userLabel="keyboard">
<rect key="frame" x="0.0" y="267" width="375" height="400"/>
<subviews>
<button opaque="NO" clipsSubviews="YES" tag="1" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uxb-3y-6MP" customClass="PinIndicator" customModule="Fast_Remit" customModuleProvider="target">
<button opaque="NO" clipsSubviews="YES" tag="1" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uxb-3y-6MP" customClass="PinIndicator" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="20" y="40" width="98.5" height="64"/>
<fontDescription key="fontDescription" type="system" pointSize="25"/>
<state key="normal" title="1">
@ -109,7 +109,7 @@
<action selector="keyboardPressed:" destination="eZb-O9-KwV" eventType="touchUpInside" id="XYs-GF-s9W"/>
</connections>
</button>
<button opaque="NO" clipsSubviews="YES" tag="2" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="HJZ-BT-9eb" customClass="PinIndicator" customModule="Fast_Remit" customModuleProvider="target">
<button opaque="NO" clipsSubviews="YES" tag="2" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="HJZ-BT-9eb" customClass="PinIndicator" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="138.5" y="40" width="98" height="64"/>
<constraints>
<constraint firstAttribute="width" secondItem="HJZ-BT-9eb" secondAttribute="height" multiplier="1:0.65" id="1VR-Td-HwG"/>
@ -125,7 +125,7 @@
<action selector="keyboardPressed:" destination="eZb-O9-KwV" eventType="touchUpInside" id="vLv-Z7-c4R"/>
</connections>
</button>
<button opaque="NO" clipsSubviews="YES" tag="3" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cog-Nd-UYd" customClass="PinIndicator" customModule="Fast_Remit" customModuleProvider="target">
<button opaque="NO" clipsSubviews="YES" tag="3" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cog-Nd-UYd" customClass="PinIndicator" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="256.5" y="40" width="98.5" height="64"/>
<fontDescription key="fontDescription" type="system" pointSize="25"/>
<state key="normal" title="3">
@ -138,7 +138,7 @@
<action selector="keyboardPressed:" destination="eZb-O9-KwV" eventType="touchUpInside" id="kUY-ac-H1J"/>
</connections>
</button>
<button opaque="NO" clipsSubviews="YES" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="UJn-a6-MYe" customClass="PinIndicator" customModule="Fast_Remit" customModuleProvider="target">
<button opaque="NO" clipsSubviews="YES" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="UJn-a6-MYe" customClass="PinIndicator" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="20" y="120" width="98.5" height="64"/>
<fontDescription key="fontDescription" type="system" pointSize="25"/>
<state key="normal" title="4">
@ -151,7 +151,7 @@
<action selector="keyboardPressed:" destination="eZb-O9-KwV" eventType="touchUpInside" id="vVP-wW-7UM"/>
</connections>
</button>
<button opaque="NO" clipsSubviews="YES" tag="5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="sva-ss-Jmv" customClass="PinIndicator" customModule="Fast_Remit" customModuleProvider="target">
<button opaque="NO" clipsSubviews="YES" tag="5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="sva-ss-Jmv" customClass="PinIndicator" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="138.5" y="120" width="98" height="64"/>
<fontDescription key="fontDescription" type="system" pointSize="25"/>
<state key="normal" title="5">
@ -164,7 +164,7 @@
<action selector="keyboardPressed:" destination="eZb-O9-KwV" eventType="touchUpInside" id="4M3-s9-Shf"/>
</connections>
</button>
<button opaque="NO" clipsSubviews="YES" tag="6" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uve-ti-7ya" customClass="PinIndicator" customModule="Fast_Remit" customModuleProvider="target">
<button opaque="NO" clipsSubviews="YES" tag="6" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uve-ti-7ya" customClass="PinIndicator" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="256.5" y="120" width="98.5" height="64"/>
<fontDescription key="fontDescription" type="system" pointSize="25"/>
<state key="normal" title="6">
@ -177,7 +177,7 @@
<action selector="keyboardPressed:" destination="eZb-O9-KwV" eventType="touchUpInside" id="6ST-Wn-yxf"/>
</connections>
</button>
<button opaque="NO" clipsSubviews="YES" tag="7" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="rAE-1L-zxN" customClass="PinIndicator" customModule="Fast_Remit" customModuleProvider="target">
<button opaque="NO" clipsSubviews="YES" tag="7" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="rAE-1L-zxN" customClass="PinIndicator" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="20" y="200" width="98.5" height="64"/>
<fontDescription key="fontDescription" type="system" pointSize="25"/>
<state key="normal" title="7">
@ -190,7 +190,7 @@
<action selector="keyboardPressed:" destination="eZb-O9-KwV" eventType="touchUpInside" id="I4e-kV-iez"/>
</connections>
</button>
<button opaque="NO" clipsSubviews="YES" tag="8" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="abq-s3-wbI" customClass="PinIndicator" customModule="Fast_Remit" customModuleProvider="target">
<button opaque="NO" clipsSubviews="YES" tag="8" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="abq-s3-wbI" customClass="PinIndicator" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="138.5" y="200" width="98" height="64"/>
<fontDescription key="fontDescription" type="system" pointSize="25"/>
<state key="normal" title="8">
@ -203,7 +203,7 @@
<action selector="keyboardPressed:" destination="eZb-O9-KwV" eventType="touchUpInside" id="VeO-5Y-HF2"/>
</connections>
</button>
<button opaque="NO" clipsSubviews="YES" tag="9" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cKD-qE-N40" customClass="PinIndicator" customModule="Fast_Remit" customModuleProvider="target">
<button opaque="NO" clipsSubviews="YES" tag="9" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cKD-qE-N40" customClass="PinIndicator" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="256.5" y="200" width="98.5" height="64"/>
<fontDescription key="fontDescription" type="system" pointSize="25"/>
<state key="normal" title="9">
@ -216,7 +216,7 @@
<action selector="keyboardPressed:" destination="eZb-O9-KwV" eventType="touchUpInside" id="tam-0v-T01"/>
</connections>
</button>
<button opaque="NO" clipsSubviews="YES" tag="1001" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fEL-KO-vKM" customClass="DeleteOKIndicator" customModule="Fast_Remit" customModuleProvider="target">
<button opaque="NO" clipsSubviews="YES" tag="1001" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fEL-KO-vKM" customClass="DeleteOKIndicator" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="256.5" y="280" width="98.5" height="63.5"/>
<color key="backgroundColor" name="ThemeRed"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
@ -230,7 +230,7 @@
<action selector="keyboardPressed:" destination="eZb-O9-KwV" eventType="touchUpInside" id="LXj-tf-Iwj"/>
</connections>
</button>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hQB-bP-FZg" customClass="PinIndicator" customModule="Fast_Remit" customModuleProvider="target">
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="hQB-bP-FZg" customClass="PinIndicator" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="138.5" y="280" width="98" height="63.5"/>
<fontDescription key="fontDescription" type="system" pointSize="25"/>
<state key="normal" title="0">
@ -243,11 +243,11 @@
<action selector="keyboardPressed:" destination="eZb-O9-KwV" eventType="touchUpInside" id="SKt-zf-xYu"/>
</connections>
</button>
<button opaque="NO" clipsSubviews="YES" tag="1000" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CIU-9Q-OSg" customClass="DeleteOKIndicator" customModule="Fast_Remit" customModuleProvider="target">
<button opaque="NO" clipsSubviews="YES" tag="1000" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CIU-9Q-OSg" customClass="DeleteOKIndicator" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="20" y="280" width="98.5" height="63.5"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<fontDescription key="fontDescription" type="system" pointSize="25"/>
<state key="normal" image="backspace">
<state key="normal" image="ic_backspace">
<color key="titleColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</state>
<state key="highlighted">
@ -339,8 +339,8 @@
</viewController>
</objects>
<resources>
<image name="app logo" width="512" height="512"/>
<image name="backspace" width="512" height="512"/>
<image name="PinSecurity" width="100" height="100"/>
<image name="ic_backspace" width="20" height="15"/>
<namedColor name="ThemeRed">
<color red="0.92941176470588238" green="0.10588235294117647" blue="0.14117647058823529" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>

12
GME Remit/Modules/RemittanceModules/OverseasModules/SendMoneyReceipt/User Interface/View/SendMoneyReceipt.storyboard

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16096" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15705" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina5_5" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16086"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15706"/>
<capability name="Named colors" minToolsVersion="9.0"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@ -61,8 +61,8 @@
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_gme_logo" translatesAutoresizingMaskIntoConstraints="NO" id="Oqg-r5-Yx8">
<rect key="frame" x="117.66666666666669" y="16" width="120" height="40"/>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="jme_launch_icon" translatesAutoresizingMaskIntoConstraints="NO" id="Oqg-r5-Yx8">
<rect key="frame" x="-334.66666666666669" y="16" width="1024.3333333333333" height="40"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="gcn-z7-9Qc"/>
</constraints>
@ -669,11 +669,10 @@
<point key="canvasLocation" x="-842.75362318840587" y="344.83695652173918"/>
</scene>
</scenes>
<color key="tintColor" red="0.78177064659999995" green="0.55228364470000002" blue="0.018981300289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<resources>
<image name="Vertical - Bringing You Closer - Black" width="297" height="197"/>
<image name="ic_gme_logo" width="120" height="120"/>
<image name="ic_recipient_bg" width="355" height="226"/>
<image name="jme_launch_icon" width="512" height="512"/>
<namedColor name="ThemeMainBackground">
<color red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
@ -684,4 +683,5 @@
<color red="0.28999999165534973" green="0.28999999165534973" blue="0.28999999165534973" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
</resources>
<color key="tintColor" red="0.78177064659999995" green="0.55228364470000002" blue="0.018981300289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</document>

13
GME Remit/Modules/SideMenu/SideMenu.storyboard

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16096" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15705" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
<device id="retina5_5" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16086"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15706"/>
<capability name="Named colors" minToolsVersion="9.0"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@ -190,7 +190,7 @@
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="settingsAbout" translatesAutoresizingMaskIntoConstraints="NO" id="2YN-i2-6yb">
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="jme_launch_icon" translatesAutoresizingMaskIntoConstraints="NO" id="2YN-i2-6yb">
<rect key="frame" x="0.0" y="15" width="15" height="15"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
@ -407,8 +407,8 @@
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="6iy-En-3n0">
<rect key="frame" x="0.0" y="0.0" width="414" height="116"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="splash_logo" translatesAutoresizingMaskIntoConstraints="NO" id="ZFj-QW-tAj">
<rect key="frame" x="144.66666666666666" y="15.999999999999996" width="124.66666666666666" height="36.666666666666657"/>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="jme_launch_icon" translatesAutoresizingMaskIntoConstraints="NO" id="ZFj-QW-tAj">
<rect key="frame" x="-305" y="16" width="1024" height="1024"/>
</imageView>
</subviews>
<color key="backgroundColor" name="ThemeRedDark"/>
@ -570,13 +570,12 @@
</scene>
</scenes>
<resources>
<image name="jme_launch_icon" width="512" height="512"/>
<image name="notice" width="64" height="64"/>
<image name="settingsAbout" width="60" height="60"/>
<image name="settingsFacebook" width="25" height="25"/>
<image name="settingsLinkedin" width="25" height="25"/>
<image name="settingsLogout" width="15" height="13"/>
<image name="settingsSetting" width="15" height="16"/>
<image name="splash_logo" width="124.5" height="36.5"/>
<namedColor name="ThemeMainBackground">
<color red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>

40
GME Remit/Modules/SplashScreen/User Interface/View/SplashScreen.storyboard

@ -23,7 +23,7 @@
<!--SplashScreen-->
<scene sceneID="R60-Pu-Hpy">
<objects>
<viewController storyboardIdentifier="SplashScreenViewController" title="SplashScreen" id="HSb-ou-7T5" customClass="SplashScreenViewController" customModule="Fast_Remit" customModuleProvider="target" sceneMemberID="viewController">
<viewController storyboardIdentifier="SplashScreenViewController" title="SplashScreen" id="HSb-ou-7T5" customClass="SplashScreenViewController" customModule="JME_Remit" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="cZd-Ew-7KS">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
@ -37,8 +37,8 @@
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="6kh-QB-9Ob">
<rect key="frame" x="20" y="20" width="280" height="121.5"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="splash_logo" translatesAutoresizingMaskIntoConstraints="NO" id="BNn-h6-EZr">
<rect key="frame" x="15.5" y="0.0" width="249" height="46.5"/>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_logo_white_large" translatesAutoresizingMaskIntoConstraints="NO" id="BNn-h6-EZr">
<rect key="frame" x="0.0" y="0.0" width="280" height="46.5"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="tintColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
@ -131,7 +131,7 @@
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3n5-Fc-dqh">
<rect key="frame" x="10" y="10" width="260" height="30"/>
<subviews>
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eDK-qV-VFt" customClass="ScrollableSegmentedControl" customModule="Fast_Remit" customModuleProvider="target">
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eDK-qV-VFt" customClass="ScrollableSegmentedControl" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="260" height="30"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="segmentTintColor">
@ -177,7 +177,7 @@
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="1,000,000" placeholder="10,000,000" textAlignment="natural" minimumFontSize="12" translatesAutoresizingMaskIntoConstraints="NO" id="Tbe-dC-rgG" customClass="GMENumberTextField" customModule="Fast_Remit" customModuleProvider="target">
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="1,000,000" placeholder="10,000,000" textAlignment="natural" minimumFontSize="12" translatesAutoresizingMaskIntoConstraints="NO" id="Tbe-dC-rgG" customClass="GMENumberTextField" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="20" width="127" height="30"/>
<color key="tintColor" red="0.78177064659999995" green="0.55228364470000002" blue="0.018981300289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
@ -193,17 +193,17 @@
<rect key="frame" x="127" y="0.0" width="125" height="50"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="tEw-hJ-iFs">
<rect key="frame" x="25" y="12" width="75.5" height="26"/>
<rect key="frame" x="28" y="12" width="69" height="26"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="flag_mongolia" translatesAutoresizingMaskIntoConstraints="NO" id="34B-xO-svC">
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="flag_japan" translatesAutoresizingMaskIntoConstraints="NO" id="34B-xO-svC">
<rect key="frame" x="0.0" y="0.0" width="26" height="26"/>
<constraints>
<constraint firstAttribute="height" constant="26" id="5nX-L5-ZyU"/>
<constraint firstAttribute="width" constant="26" id="Pnw-DC-9of"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="MNT" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="h40-R1-hmc">
<rect key="frame" x="36" y="0.0" width="39.5" height="26"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="JPY" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="h40-R1-hmc">
<rect key="frame" x="36" y="0.0" width="33" height="26"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Bold" family="San Francisco Display" pointSize="18"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
@ -258,7 +258,7 @@
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="Ykt-vE-M86">
<rect key="frame" x="15" y="0.0" width="205" height="30"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="252" verticalHuggingPriority="251" text=" -5,000 MNT (Transfer Fees Included)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bV0-QC-uwk">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="252" verticalHuggingPriority="251" text=" -5,000 JPY (Transfer Fees Included)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bV0-QC-uwk">
<rect key="frame" x="0.0" y="0.0" width="205" height="30"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="12"/>
<color key="textColor" name="ThemeText"/>
@ -337,7 +337,7 @@
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="1,000,000" placeholder="10,000,000" textAlignment="natural" minimumFontSize="12" translatesAutoresizingMaskIntoConstraints="NO" id="nVE-2o-P1Q" customClass="GMENumberTextField" customModule="Fast_Remit" customModuleProvider="target">
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="1,000,000" placeholder="10,000,000" textAlignment="natural" minimumFontSize="12" translatesAutoresizingMaskIntoConstraints="NO" id="nVE-2o-P1Q" customClass="GMENumberTextField" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="20" width="127" height="30"/>
<color key="tintColor" red="0.78177064659999995" green="0.55228364470000002" blue="0.018981300289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
@ -356,23 +356,23 @@
<rect key="frame" x="0.0" y="0.0" width="125" height="50"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="kbK-nO-e8j">
<rect key="frame" x="7" y="12" width="111.5" height="26"/>
<rect key="frame" x="10" y="12" width="105" height="26"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="flag_mongolia" translatesAutoresizingMaskIntoConstraints="NO" id="dae-8d-fM2">
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="flag_japan" translatesAutoresizingMaskIntoConstraints="NO" id="dae-8d-fM2">
<rect key="frame" x="0.0" y="0.0" width="26" height="26"/>
<constraints>
<constraint firstAttribute="width" constant="26" id="94S-dX-UCF"/>
<constraint firstAttribute="height" constant="26" id="edJ-bV-1X9"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="MNT" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="82h-n3-bO9">
<rect key="frame" x="36" y="0.0" width="39.5" height="26"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="JPY" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="82h-n3-bO9">
<rect key="frame" x="36" y="0.0" width="33" height="26"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Bold" family="San Francisco Display" pointSize="18"/>
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<nil key="highlightedColor"/>
</label>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_dropdownSmall" translatesAutoresizingMaskIntoConstraints="NO" id="rVh-AA-EBn">
<rect key="frame" x="85.5" y="0.0" width="26" height="26"/>
<rect key="frame" x="79" y="0.0" width="26" height="26"/>
<color key="tintColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="26" id="Igu-y4-Yyu"/>
@ -509,8 +509,8 @@
</constraints>
</view>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ZWP-4H-GDB">
<rect key="frame" x="23" y="486" width="274" height="44"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="16"/>
<rect key="frame" x="5.5" y="486" width="309" height="44"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Semibold" family="San Francisco Display" pointSize="18"/>
<state key="normal" title="Existing JME Users without App Login">
<color key="titleColor" name="textColor" catalog="System" colorSpace="catalog"/>
</state>
@ -631,11 +631,11 @@
</scenes>
<resources>
<image name="chat11" width="64" height="64"/>
<image name="flag_mongolia" width="512" height="512"/>
<image name="flag_japan" width="512" height="512"/>
<image name="flag_south_korea" width="512" height="512"/>
<image name="ic_dropdown" width="11" height="6"/>
<image name="ic_dropdownSmall" width="6" height="3"/>
<image name="splash_logo" width="124.5" height="36.5"/>
<image name="ic_logo_white_large" width="170.5" height="61.5"/>
<namedColor name="ThemeBlack">
<color white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</namedColor>

22
GME Remit/MultiLanguages/en.lproj/Localizable.strings

@ -22,7 +22,7 @@
"existing_userRegister_desc" = "For validating your transaction, you will need a 6 digits transaction PIN, please specify your PIN below";
"new_pin_title" = "New PIN";
"new_pin_placeholder" = "Enter PIN Number";
"new_pin_error" = "PIN should be 4 digit number";
"new_pin_error" = "PIN should be 6 digit number";
"confirm_pin_title" = "Confirm PIN";
"confirm_pin_placeholder" = "Confirm PIN Number";
@ -103,7 +103,7 @@
"placeholder_enter_receiver_address_text" = "Enter receiver's address";
"relation_text" = "Relation";
"placeholder_select_relation_text" = " Select relation";
"mobile_number_text" = "Enter your mobile number";
"mobile_number_text" = "Mobile number should be of 11 digits";
"mobile_number_title" = "Mobile No.";
"placeholder_enter_reciever_mobile_number_text" = "Enter receiver's mobile number";
"state_text" = "State/Province";
@ -327,6 +327,12 @@
"search_occupation_text" = "Search Occupation";
"no_occupation_found_text" = "No Occupation found";
"select_id_type_text" = "Select Id Type";
"select_additionalId_type_text" = "Select Additional Id Type";
"select_monthly_income" = "Select Monthly Income";
"select_business_type" = "Select Business Type";
"select_visa_status" = "Select Visa Status";
"existing_user_description" = "If you are already registered to JME and using its services currently please apply for mobile login by filling following information";
"select_source_of_fund_text" = "Select Source Of Fund";
"no_id_type_found_text" = "No Id Type found";
"search_id_text" = "Search Id Type";
"select_primary_bank_text" = "Select Primary Bank";
@ -652,7 +658,7 @@
"local_transfer_text" = "Local Transfer";
"select_auto_debit_account_text" = "Select Your Auto-debit Account";
"domestic_available_balance_text" = "Available Balance";
"enter_send_amount_text" = "Enter Send Amount (MNT)";
"enter_send_amount_text" = "Enter Send Amount (JPY)";
"select_korea_bank" = "Select Bank";
"enter_account_text" = "Enter Account Number";
"recipient_name_text" = "Recipient Name";
@ -661,7 +667,7 @@
"account_balance_button_text" = "View Account Balance";
"doesnt_have_auto_debit_text" = "Please register an auto-debit account inorder to use this service.";
"amount_bigger_error_text" = "Amount bigger than Balance.";
"amount_minimum_error_text" = "Minimum sending amount should be at least 10,000 MNT";
"amount_minimum_error_text" = "Minimum sending amount should be at least 10,000 JPY";
"check_recipient_name_text" = "is recipient correct?";
"min_length_account_error_text" = "Bank Account No. should be at least 9 digits";
"invalid_account_error_text" = "Invalid bank account number";
@ -670,8 +676,8 @@
"local_text" = "Local";
"international_text" = "International";
"transfer_charge_text" = "Transfer Charge";
"will_deduct_info_text" = "It will deduct oooMNT (Amount + ServiceFee)";
"amount_max_error_text" = "Sending amount should not exceed 6,500,000 MNT";
"will_deduct_info_text" = "It will deduct oooJPY (Amount + ServiceFee)";
"amount_max_error_text" = "Sending amount should not exceed 6,500,000 JPY";
// Inbound
@ -682,7 +688,7 @@
"add_text" = "Add";
"inbound_text" = "Inbound";
"outbound_text" = "Outbound";
"pennytest_information_text" = "We have sent 1 MNT to your Bank Account, Please check the statement and enter the 4 digit number display after Fast Remit.";
"pennytest_information_text" = "We have sent 1 JPY to your Bank Account, Please check the statement and enter the 4 digit number display after Fast Remit.";
"deposit_reference_text" = "Deposit Reference";
"resend_text" = "Resend";
"added_inbound_account_message_text" = "Added your inbound account";
@ -851,7 +857,7 @@
//Withdraw/Bank Deposit
"withdraw_description" = "Please enter the required amount to withdraw from your wallet to your bank";
"enter_amount_text" = "Enter Amount(MNT)";
"enter_amount_text" = "Enter Amount(JPY)";
"bank_deposit_detail_text" = "Bank Deposit Detail";
"bank_text" = "Bank";
"amount_text" = "Amount";

10
GME Remit/MultiLanguages/id.lproj/Localizable.strings

@ -639,7 +639,7 @@
"local_transfer_text" = "Transfer Lokal";
"select_auto_debit_account_text" = "Pilih Akun Debit Automatis Anda";
"domestic_available_balance_text" = "Saldo Tersedia";
"enter_send_amount_text" = "Masukan Jumlah Kirim (MNT)";
"enter_send_amount_text" = "Masukan Jumlah Kirim (JPY)";
"select_korea_bank" = "Pilih Bank Korea";
"enter_account_text" = "Masukan Nomor Rekening";
"recipient_name_text" = "Nama Penerima";
@ -648,7 +648,7 @@
"account_balance_button_text" = "Lihat Saldo Akun";
"doesnt_have_auto_debit_text" = "Mohon aktivasi akun debit automatis untuk menggunakan layanan ini";
"amount_bigger_error_text" = "Jumlah lebih besar dari Saldo";
"amount_minimum_error_text" = "Minimal jumlah pengiriman adalah 10,000 MNT";
"amount_minimum_error_text" = "Minimal jumlah pengiriman adalah 10,000 JPY";
"check_recipient_name_text" = "Apakah penerima sudah benar?";
"min_length_account_error_text" = "No. Rekening Bank minimal 9 digit";
"invalid_account_error_text" = "Nomor rekening bank tidak valid";
@ -657,8 +657,8 @@
"local_text" = "Lokal";
"international_text" = "Internasional";
"transfer_charge_text" = "Biaya Kirim";
"will_deduct_info_text" = "Pemotongan ooo MNT (Nominal + Biaya)";
"amount_max_error_text" = "Jumlah uang yang dikirim tidak boleh melebihi 6,500,000 MNT";
"will_deduct_info_text" = "Pemotongan ooo JPY (Nominal + Biaya)";
"amount_max_error_text" = "Jumlah uang yang dikirim tidak boleh melebihi 6,500,000 JPY";
// Inbound
@ -669,7 +669,7 @@
"add_text" = "Tambah";
"inbound_text" = "Pengiriman ke dalam Korea";
"outbound_text" = "Pengiriman ke luar Korea";
"pennytest_information_text" = "Kami mengirimkan 1 MNT ke Akun Bank Anda, Mohon cek riwayat rekening Anda dan masukan 4 angka yang ada setelah kata Fast Remit";
"pennytest_information_text" = "Kami mengirimkan 1 JPY ke Akun Bank Anda, Mohon cek riwayat rekening Anda dan masukan 4 angka yang ada setelah kata Fast Remit";
"deposit_reference_text" = "Refrensi Setoran";
"resend_text" = "Kirim Ulang";
"added_inbound_account_message_text" = "Akun Inbound Anda sudah ditambahkan";

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

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/100.png

After

Width: 100  |  Height: 100  |  Size: 5.8 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/1024.png

After

Width: 1024  |  Height: 1024  |  Size: 75 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/114.png

After

Width: 114  |  Height: 114  |  Size: 6.9 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/120.png

After

Width: 120  |  Height: 120  |  Size: 7.4 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/144.png

After

Width: 144  |  Height: 144  |  Size: 9.5 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/152.png

After

Width: 152  |  Height: 152  |  Size: 10 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/167.png

After

Width: 167  |  Height: 167  |  Size: 12 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/180.png

After

Width: 180  |  Height: 180  |  Size: 13 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/20.png

After

Width: 20  |  Height: 20  |  Size: 678 B

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/29.png

After

Width: 29  |  Height: 29  |  Size: 1.1 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/40.png

After

Width: 40  |  Height: 40  |  Size: 1.6 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/50.png

After

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

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/57.png

After

Width: 57  |  Height: 57  |  Size: 2.6 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/58.png

After

Width: 58  |  Height: 58  |  Size: 2.8 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/60.png

After

Width: 60  |  Height: 60  |  Size: 2.7 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/72.png

After

Width: 72  |  Height: 72  |  Size: 3.7 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/76.png

After

Width: 76  |  Height: 76  |  Size: 3.9 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/80.png

After

Width: 80  |  Height: 80  |  Size: 4.2 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/87.png

After

Width: 87  |  Height: 87  |  Size: 4.8 KiB

282
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Contents.json

@ -1,128 +1,158 @@
{
"images":[
{
"idiom":"iphone",
"size":"20x20",
"scale":"2x",
"filename":"Icon-App-20x20@2x.png"
},
{
"idiom":"iphone",
"size":"20x20",
"scale":"3x",
"filename":"Icon-App-20x20@3x.png"
},
{
"idiom":"iphone",
"size":"29x29",
"scale":"1x",
"filename":"Icon-App-29x29@1x.png"
},
{
"idiom":"iphone",
"size":"29x29",
"scale":"2x",
"filename":"Icon-App-29x29@2x.png"
},
{
"idiom":"iphone",
"size":"29x29",
"scale":"3x",
"filename":"Icon-App-29x29@3x.png"
},
{
"idiom":"iphone",
"size":"40x40",
"scale":"2x",
"filename":"Icon-App-40x40@2x.png"
},
{
"idiom":"iphone",
"size":"40x40",
"scale":"3x",
"filename":"Icon-App-40x40@3x.png"
},
{
"idiom":"iphone",
"size":"60x60",
"scale":"2x",
"filename":"Icon-App-60x60@2x.png"
},
{
"idiom":"iphone",
"size":"60x60",
"scale":"3x",
"filename":"Icon-App-60x60@3x.png"
},
{
"idiom":"iphone",
"size":"76x76",
"scale":"2x",
"filename":"Icon-App-76x76@2x.png"
},
{
"idiom":"ipad",
"size":"20x20",
"scale":"1x",
"filename":"Icon-App-20x20@1x.png"
},
{
"idiom":"ipad",
"size":"20x20",
"scale":"2x",
"filename":"Icon-App-20x20@2x.png"
},
{
"idiom":"ipad",
"size":"29x29",
"scale":"1x",
"filename":"Icon-App-29x29@1x.png"
},
{
"idiom":"ipad",
"size":"29x29",
"scale":"2x",
"filename":"Icon-App-29x29@2x.png"
},
{
"idiom":"ipad",
"size":"40x40",
"scale":"1x",
"filename":"Icon-App-40x40@1x.png"
},
{
"idiom":"ipad",
"size":"40x40",
"scale":"2x",
"filename":"Icon-App-40x40@2x.png"
},
{
"idiom":"ipad",
"size":"76x76",
"scale":"1x",
"filename":"Icon-App-76x76@1x.png"
},
{
"idiom":"ipad",
"size":"76x76",
"scale":"2x",
"filename":"Icon-App-76x76@2x.png"
},
{
"idiom":"ipad",
"size":"83.5x83.5",
"scale":"2x",
"filename":"Icon-App-83.5x83.5@2x.png"
},
{
"size" : "1024x1024",
"idiom" : "ios-marketing",
"scale" : "1x",
"filename" : "ItunesArtwork@2x.png"
}
],
"info":{
"version":1,
"author":"makeappicon"
"images" : [
{
"size" : "20x20",
"idiom" : "iphone",
"filename" : "40.png",
"scale" : "2x"
},
{
"size" : "20x20",
"idiom" : "iphone",
"filename" : "60.png",
"scale" : "3x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "29.png",
"scale" : "1x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "58.png",
"scale" : "2x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "87.png",
"scale" : "3x"
},
{
"size" : "40x40",
"idiom" : "iphone",
"filename" : "80.png",
"scale" : "2x"
},
{
"size" : "40x40",
"idiom" : "iphone",
"filename" : "120.png",
"scale" : "3x"
},
{
"size" : "57x57",
"idiom" : "iphone",
"filename" : "57.png",
"scale" : "1x"
},
{
"size" : "57x57",
"idiom" : "iphone",
"filename" : "114.png",
"scale" : "2x"
},
{
"size" : "60x60",
"idiom" : "iphone",
"filename" : "120.png",
"scale" : "2x"
},
{
"size" : "60x60",
"idiom" : "iphone",
"filename" : "180.png",
"scale" : "3x"
},
{
"size" : "20x20",
"idiom" : "ipad",
"filename" : "20.png",
"scale" : "1x"
},
{
"size" : "20x20",
"idiom" : "ipad",
"filename" : "40.png",
"scale" : "2x"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "29.png",
"scale" : "1x"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "58.png",
"scale" : "2x"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "40.png",
"scale" : "1x"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "80.png",
"scale" : "2x"
},
{
"size" : "50x50",
"idiom" : "ipad",
"filename" : "50.png",
"scale" : "1x"
},
{
"size" : "50x50",
"idiom" : "ipad",
"filename" : "100.png",
"scale" : "2x"
},
{
"size" : "72x72",
"idiom" : "ipad",
"filename" : "72.png",
"scale" : "1x"
},
{
"size" : "72x72",
"idiom" : "ipad",
"filename" : "144.png",
"scale" : "2x"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "76.png",
"scale" : "1x"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "152.png",
"scale" : "2x"
},
{
"size" : "83.5x83.5",
"idiom" : "ipad",
"filename" : "167.png",
"scale" : "2x"
},
{
"size" : "1024x1024",
"idiom" : "ios-marketing",
"filename" : "1024.png",
"scale" : "1x"
}
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png

Before

Width: 20  |  Height: 20  |  Size: 553 B

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png

Before

Width: 40  |  Height: 40  |  Size: 1.2 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png

Before

Width: 60  |  Height: 60  |  Size: 1.9 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png

Before

Width: 29  |  Height: 29  |  Size: 847 B

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png

Before

Width: 58  |  Height: 58  |  Size: 1.8 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png

Before

Width: 87  |  Height: 87  |  Size: 2.9 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png

Before

Width: 40  |  Height: 40  |  Size: 1.2 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png

Before

Width: 80  |  Height: 80  |  Size: 2.7 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png

Before

Width: 120  |  Height: 120  |  Size: 4.3 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png

Before

Width: 120  |  Height: 120  |  Size: 4.3 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png

Before

Width: 180  |  Height: 180  |  Size: 6.7 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png

Before

Width: 76  |  Height: 76  |  Size: 2.5 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png

Before

Width: 152  |  Height: 152  |  Size: 5.5 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png

Before

Width: 167  |  Height: 167  |  Size: 6.3 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png

Before

Width: 1024  |  Height: 1024  |  Size: 18 KiB

3
GME Remit/Supported Files/Assets.xcassets/ccr/app logo.imageset/Contents.json → GME Remit/Supported Files/Assets.xcassets/PinSecurity.imageset/Contents.json

@ -6,12 +6,11 @@
},
{
"idiom" : "universal",
"filename" : "app logo.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "app logo-1.png",
"filename" : "PinSecurity.pdf",
"scale" : "3x"
}
],

1
GME Remit/Supported Files/Assets.xcassets/PinSecurity.imageset/PinSecurity.pdf

@ -0,0 +1 @@

BIN
GME Remit/Supported Files/Assets.xcassets/ccr/app logo.imageset/app logo-1.png

Before

Width: 1024  |  Height: 1024  |  Size: 54 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/ccr/app logo.imageset/app logo.png

Before

Width: 1024  |  Height: 1024  |  Size: 54 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/ccr/ic_logo_white_large 2.imageset/ic_logo_white_large 2-1.png

Before

Width: 665  |  Height: 196  |  Size: 18 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/ccr/ic_logo_white_large 2.imageset/ic_logo_white_large 2.png

Before

Width: 665  |  Height: 196  |  Size: 18 KiB

3
GME Remit/Supported Files/Assets.xcassets/ccr/ic_logo_white_large 2.imageset/Contents.json → GME Remit/Supported Files/Assets.xcassets/ic_backspace.imageset/Contents.json

@ -2,16 +2,15 @@
"images" : [
{
"idiom" : "universal",
"filename" : "ic_backspace.pdf",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "ic_logo_white_large 2.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "ic_logo_white_large 2-1.png",
"scale" : "3x"
}
],

1
GME Remit/Supported Files/Assets.xcassets/ic_backspace.imageset/ic_backspace.pdf

@ -0,0 +1 @@

10
GME Remit/Supported Files/Assets.xcassets/ic_gme_logo/ic_gme_logo.imageset/Contents.json

@ -1,12 +1,12 @@
{
"images" : [
{
"filename" : "ic_gme_logo_white.png",
"idiom" : "universal"
"idiom" : "universal",
"filename" : "ic_gme_logo_white.png"
}
],
"info" : {
"author" : "xcode",
"version" : 1
"version" : 1,
"author" : "xcode"
}
}
}

23
GME Remit/Supported Files/Assets.xcassets/ic_logo_white_large.imageset/Contents.json

@ -0,0 +1,23 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "ic_logo_white_large.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "ic_logo_white_large@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "ic_logo_white_large@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
GME Remit/Supported Files/Assets.xcassets/ic_logo_white_large.imageset/ic_logo_white_large.png

After

Width: 170  |  Height: 61  |  Size: 16 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/ic_logo_white_large.imageset/ic_logo_white_large@2x.png

After

Width: 341  |  Height: 123  |  Size: 36 KiB

BIN
GME Remit/Supported Files/Assets.xcassets/ic_logo_white_large.imageset/ic_logo_white_large@3x.png

After

Width: 512  |  Height: 185  |  Size: 42 KiB

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

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "Transaction.pdf",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

1
GME Remit/Supported Files/Assets.xcassets/ic_transaction.imageset/Transaction.pdf

@ -0,0 +1 @@

12
GME Remit/Supported Files/Assets.xcassets/jme_launch_icon.imageset/Contents.json

@ -0,0 +1,12 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "jme.png"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
GME Remit/Supported Files/Assets.xcassets/jme_launch_icon.imageset/jme.png

After

Width: 512  |  Height: 512  |  Size: 13 KiB

8
GME Remit/Supported Files/Base.lproj/LaunchScreen.storyboard

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16096" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15705" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<device id="retina4_7" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16086"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15706"/>
<capability name="Named colors" minToolsVersion="9.0"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@ -17,7 +17,7 @@
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_gme_logo" translatesAutoresizingMaskIntoConstraints="NO" id="N3b-w5-Ftf">
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="jme_launch_icon" translatesAutoresizingMaskIntoConstraints="NO" id="N3b-w5-Ftf">
<rect key="frame" x="162.5" y="308.5" width="50" height="50"/>
<constraints>
<constraint firstAttribute="width" constant="50" id="Ed7-rd-ckP"/>
@ -39,7 +39,7 @@
</scene>
</scenes>
<resources>
<image name="ic_gme_logo" width="120" height="120"/>
<image name="jme_launch_icon" width="512" height="512"/>
<namedColor name="ThemeRedDark">
<color red="0.92941176470588238" green="0.10588235294117647" blue="0.14117647058823529" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>

6
GME RemitTests/FunctionTest.swift

@ -142,13 +142,13 @@ class FunctionTest: XCTestCase {
amount = "10000"
XCTAssert(
amount.decimalToCurrency(as: .krw, isFront: true) == "MNT 10,000",
amount.decimalToCurrency(as: .krw, isFront: true) == "JPY 10,000",
amount.decimalToCurrency(as: .krw, isFront: true)
)
amount = "10000.00"
XCTAssert(
amount.decimalToCurrency(as: .krw, isFront: false) == "10,000 MNT",
amount.decimalToCurrency(as: .krw, isFront: false) == "10,000 JPY",
amount.decimalToCurrency(as: .krw, isFront: false)
)
@ -184,7 +184,7 @@ class FunctionTest: XCTestCase {
amount = "0.11"
XCTAssert(amount.currencyToDecimal() == "0.11", amount.currencyToDecimal())
amount = "MNT 10,000"
amount = "JPY 10,000"
XCTAssert(amount.currencyToDecimal() == "10000", amount.currencyToDecimal())
amount = "USD 11,345"

Loading…
Cancel
Save