Browse Source

Others added to recipient

pull/1/head
Dibya Malla 4 years ago
parent
commit
87bfbf4e30
  1. 4
      GME Remit.xcodeproj/project.pbxproj
  2. 9
      GME Remit/Modules/Home/User Interface/View/Home.storyboard
  3. 4
      GME Remit/Modules/Home/User Interface/View/HomeViewController.swift
  4. 2
      GME Remit/Modules/Home/User Interface/Wireframe/HomeWireframe.swift
  5. 2
      GME Remit/Modules/Login/User Interface/View/LoginViewController.swift
  6. 4
      GME Remit/Modules/Notice/NotificationHistory/Application Logic/Model/NoticeModel.swift
  7. 1
      GME Remit/Modules/Notice/NotificationHistory/User Interface/View/NotificationHistoryViewController.swift
  8. 52
      GME Remit/Modules/Profile/ChangePinAndPasswordViewController.swift
  9. 40
      GME Remit/Modules/Profile/Profile.storyboard
  10. 44
      GME Remit/Modules/RecipientModules/SetupRecipient/User Interface/View/SetupRecipientViewController.swift
  11. 21
      GME Remit/Modules/RecipientModules/SetupRecipient/User Interface/View/ViewModel/SetupRecipientViewModel.swift
  12. 1
      GME Remit/Modules/RegisterModules/UserAuthentication/KYCVerifyStep1/User Interface/Presenter/KYCVerifyStep1Presenter.swift
  13. 36
      GME Remit/Modules/RegisterModules/UserAuthentication/KYCVerifyStep1/User Interface/View/KYCVerifyStep1.storyboard
  14. 6
      GME Remit/Modules/RegisterModules/UserAuthentication/KYCVerifyStep1/User Interface/View/KYCVerifyStep1ViewController.swift
  15. 12
      GME Remit/Supported Files/Assets.xcassets/sample_id_back.imageset/Contents.json
  16. BIN
      GME Remit/Supported Files/Assets.xcassets/sample_id_back.imageset/sample_id_back.png
  17. 12
      GME Remit/Supported Files/Assets.xcassets/sample_id_front.imageset/Contents.json
  18. BIN
      GME Remit/Supported Files/Assets.xcassets/sample_id_front.imageset/sample_id_front.png
  19. 5
      GME Remit/Utilities/AppConstants.swift

4
GME Remit.xcodeproj/project.pbxproj

@ -7484,7 +7484,7 @@
CODE_SIGN_ENTITLEMENTS = "GME Remit.entitlements"; CODE_SIGN_ENTITLEMENTS = "GME Remit.entitlements";
CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 6;
CURRENT_PROJECT_VERSION = 7;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = XQRV22K6DC; DEVELOPMENT_TEAM = XQRV22K6DC;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
@ -7523,7 +7523,7 @@
CODE_SIGN_ENTITLEMENTS = "GME Remit.entitlements"; CODE_SIGN_ENTITLEMENTS = "GME Remit.entitlements";
CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 6;
CURRENT_PROJECT_VERSION = 7;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = XQRV22K6DC; DEVELOPMENT_TEAM = XQRV22K6DC;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;

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

@ -41,17 +41,14 @@
<constraint firstAttribute="height" constant="72" id="sRu-sw-H5c"/> <constraint firstAttribute="height" constant="72" id="sRu-sw-H5c"/>
</constraints> </constraints>
</imageView> </imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Thank you for registering with us!" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="pcY-xj-hQb">
<rect key="frame" x="103" y="20" width="193" height="15"/>
<constraints>
<constraint firstAttribute="height" constant="15" id="75Z-As-Aj4"/>
</constraints>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Thank you for registering with us!" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="pcY-xj-hQb">
<rect key="frame" x="103" y="20" width="193" height="14"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Bold" family="San Francisco Display" pointSize="12"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Bold" family="San Francisco Display" pointSize="12"/>
<color key="textColor" name="ThemeRed"/> <color key="textColor" name="ThemeRed"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Your document is in verification process. This will not take long. Thereafter you can enjoy GME online service." lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="8" translatesAutoresizingMaskIntoConstraints="NO" id="rwJ-pQ-p9z"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Your document is in verification process. This will not take long. Thereafter you can enjoy GME online service." lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="8" translatesAutoresizingMaskIntoConstraints="NO" id="rwJ-pQ-p9z">
<rect key="frame" x="103" y="43" width="193" height="35"/>
<rect key="frame" x="103" y="42" width="193" height="35"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="10"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="10"/>
<color key="textColor" name="ThemeText"/> <color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>

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

@ -411,8 +411,8 @@ extension HomeViewController {
blobView.removeFromSuperview() blobView.removeFromSuperview()
showMessageView(isHidden: false) showMessageView(isHidden: false)
messageTitleLabel.text = "KYC Verification is incomplete"
messageLabel.text = "Tap to complete the KYC verification process."
messageTitleLabel.text = "Verify your Account"
messageLabel.text = "Kindly complete your registration process with us to start using Japan Money Express services."
messageLeftImageview.image = #imageLiteral(resourceName: "ic_home_verified") messageLeftImageview.image = #imageLiteral(resourceName: "ic_home_verified")
let tap = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(_:))) let tap = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(_:)))
messageView.addGestureRecognizer(tap) messageView.addGestureRecognizer(tap)

2
GME Remit/Modules/Home/User Interface/Wireframe/HomeWireframe.swift

@ -113,7 +113,7 @@ extension HomeWireframe: HomeWireframeInput {
let storyboard = UIStoryboard.init(name: "Profile", bundle: Bundle.main) let storyboard = UIStoryboard.init(name: "Profile", bundle: Bundle.main)
if let changePinViewController = storyboard.instantiateViewController( if let changePinViewController = storyboard.instantiateViewController(
withIdentifier: "changePinAndPassword" withIdentifier: "changePinAndPassword"
) as? ProfileChangePinViewController {
) as? ChangePinAndPasswordViewController {
navigation.pushViewController(changePinViewController, animated: true) navigation.pushViewController(changePinViewController, animated: true)
} }
} }

2
GME Remit/Modules/Login/User Interface/View/LoginViewController.swift

@ -137,7 +137,7 @@ class LoginViewController: UIViewController {
userNameTextField.errorMessage = "userid_error_text".localized() userNameTextField.errorMessage = "userid_error_text".localized()
userNameTextField.addTarget(self, action: #selector(editingChanged(_:)), for: .editingChanged) userNameTextField.addTarget(self, action: #selector(editingChanged(_:)), for: .editingChanged)
passwordTextField.validCondition = { $0.count > 5 }
passwordTextField.validCondition = { $0.count > 2 }
passwordTextField.isSecureTextEntry = true passwordTextField.isSecureTextEntry = true
passwordTextField.errorMessage = "password_policy_error".localized() passwordTextField.errorMessage = "password_policy_error".localized()
passwordTextField.addTarget(self, action: #selector(editingChanged(_:)), for: .editingChanged) passwordTextField.addTarget(self, action: #selector(editingChanged(_:)), for: .editingChanged)

4
GME Remit/Modules/Notice/NotificationHistory/Application Logic/Model/NoticeModel.swift

@ -13,6 +13,8 @@ struct NoticeModel: Mappable {
var key: String? var key: String?
var date: String? var date: String?
var isRead: String? var isRead: String?
var type: String?
var extra: String?
init?(map: Map) { init?(map: Map) {
@ -23,5 +25,7 @@ struct NoticeModel: Mappable {
key <- map["rowId"] key <- map["rowId"]
date <- map["createDate"] date <- map["createDate"]
isRead <- map["isRead"] isRead <- map["isRead"]
type <- map["type"]
extra <- map["extra"]
} }
} }

1
GME Remit/Modules/Notice/NotificationHistory/User Interface/View/NotificationHistoryViewController.swift

@ -93,6 +93,7 @@ extension NotificationHistoryViewController {
tableView.rx.items(cellIdentifier: "NotificationCell") tableView.rx.items(cellIdentifier: "NotificationCell")
) { (_, element: NoticeModel, cell: NotificationCell) in ) { (_, element: NoticeModel, cell: NotificationCell) in
cell.setModel(element) cell.setModel(element)
} }
.disposed(by: disposeBag) .disposed(by: disposeBag)

52
GME Remit/Modules/Profile/ChangePinAndPasswordViewController.swift

@ -100,20 +100,14 @@ class ChangePinAndPasswordViewController: UIViewController {
} }
func configureLanguage() { func configureLanguage() {
self.topLabel.text = "password_policy_text".localized()
self.currentPasswordTextField.placeholder = "Enter current password" self.currentPasswordTextField.placeholder = "Enter current password"
self.newPasswordTextField.placeholder = "Enter new password" self.newPasswordTextField.placeholder = "Enter new password"
self.confirmPasswordTextField.placeholder = "Confirm Password" self.confirmPasswordTextField.placeholder = "Confirm Password"
self.newPasswordTextField.text = "New Password"
self.currentPasswordTextField.text = "Current Password"
self.confirmPasswordTextField.text = "Confirm Password"
self.currentPinTextField.placeholder = "Enter current pin" self.currentPinTextField.placeholder = "Enter current pin"
self.newPinTextField.placeholder = "Enter new pin" self.newPinTextField.placeholder = "Enter new pin"
self.confirmPinTextField.placeholder = "Enter confirm pin" self.confirmPinTextField.placeholder = "Enter confirm pin"
self.newPinTextField.text = "New PIN"
self.currentPinTextField.text = "Current PIN"
self.confirmPinTextField.text = "Confirm PIN"
self.saveButton.setTitle("save_text".localized(), for: UIControl.State.normal) self.saveButton.setTitle("save_text".localized(), for: UIControl.State.normal)
} }
@ -126,11 +120,39 @@ class ChangePinAndPasswordViewController: UIViewController {
let newPin = self.encryptedNewPin let newPin = self.encryptedNewPin
let confirmPin = self.encryptedConfirmPin let confirmPin = self.encryptedConfirmPin
let result = self.isValid(currentPassword: currentPassword, password: newPassword, confirmPassword: confirmPassword, currentPin: currentPin, pin: newPin, confirmPin: confirmPin)
if result.isValid {
let userId = Utility.getMyUserName()
let param = [
"UserId": userId,
"CurrentPassword": currentPassword,
"NewPassword": newPassword,
"ConfirmNewPassword": confirmPassword,
"CurrentPin": currentPin,
"NewPin": newPin,
"ConfirmNewPin": confirmPin
]
print("params:\(param)")
self.updatePinAndPassword(param: param)
} else {
let message = result.error
self.alert(type: .error, message: message.localizedDescription)
}
} }
func updatePassword(param: [String: String]) {
func updatePinAndPassword(param: [String: String]) {
self.updatePinAndPassword(
params: param,
success: { (message) in
self.alert(message: message, title: "Success", okAction: {
KeyChain.shared.save(data: self.encryptedNewPassword, key: .password)
self.navigationController?.popViewController(animated: true)
})
}, failure: { (error) in
self.alert(type: .error, message: error.localizedDescription)
})
} }
} }
@ -198,12 +220,12 @@ extension ChangePinAndPasswordViewController {
} }
//extension ChangePinAndPasswordViewController: UpdatePinAndPasswordService {
//
//}
extension ChangePinAndPasswordViewController: UpdatePinAndPasswordService {
}
protocol UpdatePinAndPasswordService: ApiServiceType { protocol UpdatePinAndPasswordService: ApiServiceType {
func updatPinAndPassword(
func updatePinAndPassword(
params: [String: String], params: [String: String],
success: @escaping (String?) -> Void, success: @escaping (String?) -> Void,
failure: @escaping (Error) -> Void failure: @escaping (Error) -> Void
@ -216,7 +238,7 @@ extension UpdatePinAndPasswordService {
success: @escaping (String?) -> Void, success: @escaping (String?) -> Void,
failure: @escaping (Error) -> Void failure: @escaping (Error) -> Void
) { ) {
let url = baseUrl + "/mobile/ChangePassword"
let url = baseUrl + "/mobile/changePasswordAndTxnPin"
auth.request( auth.request(
method: .post, method: .post,
url: url, url: url,

40
GME Remit/Modules/Profile/Profile.storyboard

@ -1025,7 +1025,7 @@ At least one capital letter, At least one number
<rect key="frame" x="0.0" y="44" width="375" height="734"/> <rect key="frame" x="0.0" y="44" width="375" height="734"/>
<subviews> <subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="f0J-bo-UPi"> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="f0J-bo-UPi">
<rect key="frame" x="0.0" y="0.0" width="375" height="874"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="904"/>
<subviews> <subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XME-8E-Dbj"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XME-8E-Dbj">
<rect key="frame" x="10" y="21" width="355" height="42"/> <rect key="frame" x="10" y="21" width="355" height="42"/>
@ -1037,10 +1037,10 @@ At least one capital letter, At least one number
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4D9-7H-QkB"> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4D9-7H-QkB">
<rect key="frame" x="38" y="86" width="299" height="405"/>
<rect key="frame" x="38" y="86" width="299" height="435"/>
<subviews> <subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" spacing="9" translatesAutoresizingMaskIntoConstraints="NO" id="A1G-Hy-JTQ">
<rect key="frame" x="0.0" y="0.0" width="299" height="405"/>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" spacing="15" translatesAutoresizingMaskIntoConstraints="NO" id="A1G-Hy-JTQ">
<rect key="frame" x="0.0" y="0.0" width="299" height="435"/>
<subviews> <subviews>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your Current Password" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="VQt-0P-NWm" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target"> <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your Current Password" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="VQt-0P-NWm" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="299" height="60"/> <rect key="frame" x="0.0" y="0.0" width="299" height="60"/>
@ -1050,36 +1050,54 @@ At least one capital letter, At least one number
<color key="textColor" name="ThemeText"/> <color key="textColor" name="ThemeText"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="18"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="18"/>
<textInputTraits key="textInputTraits" secureTextEntry="YES"/> <textInputTraits key="textInputTraits" secureTextEntry="YES"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="titleText" value="Current Password"/>
</userDefinedRuntimeAttributes>
</textField> </textField>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your New Password" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="HAU-4h-JJP" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target"> <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your New Password" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="HAU-4h-JJP" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="69" width="299" height="60"/>
<rect key="frame" x="0.0" y="75" width="299" height="60"/>
<color key="textColor" name="ThemeText"/> <color key="textColor" name="ThemeText"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="18"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="18"/>
<textInputTraits key="textInputTraits" secureTextEntry="YES"/> <textInputTraits key="textInputTraits" secureTextEntry="YES"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="titleText" value="New Password"/>
</userDefinedRuntimeAttributes>
</textField> </textField>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Confirm your Password" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="Pb3-P7-311" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target"> <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Confirm your Password" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="Pb3-P7-311" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="138" width="299" height="60"/>
<rect key="frame" x="0.0" y="150" width="299" height="60"/>
<color key="textColor" name="ThemeText"/> <color key="textColor" name="ThemeText"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="18"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="18"/>
<textInputTraits key="textInputTraits" secureTextEntry="YES"/> <textInputTraits key="textInputTraits" secureTextEntry="YES"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="titleText" value="Confirm Password"/>
</userDefinedRuntimeAttributes>
</textField> </textField>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your Current PIN" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="ISW-DN-TIg" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target"> <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your Current PIN" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="ISW-DN-TIg" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="207" width="299" height="60"/>
<rect key="frame" x="0.0" y="225" width="299" height="60"/>
<color key="textColor" name="ThemeText"/> <color key="textColor" name="ThemeText"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="18"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="18"/>
<textInputTraits key="textInputTraits" secureTextEntry="YES"/> <textInputTraits key="textInputTraits" secureTextEntry="YES"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="titleText" value="Current PIN"/>
</userDefinedRuntimeAttributes>
</textField> </textField>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter your New PIN" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="seX-dm-Wn4" customClass="ValidationTextField" customModule="JME_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="seX-dm-Wn4" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="276" width="299" height="60"/>
<rect key="frame" x="0.0" y="300" width="299" height="60"/>
<color key="textColor" name="ThemeText"/> <color key="textColor" name="ThemeText"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="18"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="18"/>
<textInputTraits key="textInputTraits" secureTextEntry="YES"/> <textInputTraits key="textInputTraits" secureTextEntry="YES"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="titleText" value="New PIN"/>
</userDefinedRuntimeAttributes>
</textField> </textField>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Confirm your PIN" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="gXZ-eP-eXW" customClass="ValidationTextField" customModule="JME_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="gXZ-eP-eXW" customClass="ValidationTextField" customModule="JME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="345" width="299" height="60"/>
<rect key="frame" x="0.0" y="375" width="299" height="60"/>
<color key="textColor" name="ThemeText"/> <color key="textColor" name="ThemeText"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="18"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="18"/>
<textInputTraits key="textInputTraits" secureTextEntry="YES"/> <textInputTraits key="textInputTraits" secureTextEntry="YES"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="titleText" value="Confirm PIN"/>
</userDefinedRuntimeAttributes>
</textField> </textField>
</subviews> </subviews>
</stackView> </stackView>
@ -1093,7 +1111,7 @@ At least one capital letter, At least one number
</constraints> </constraints>
</view> </view>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="daK-Zz-GE3"> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="daK-Zz-GE3">
<rect key="frame" x="38" y="531" width="299" height="50"/>
<rect key="frame" x="38" y="561" width="299" height="50"/>
<color key="backgroundColor" red="1" green="0.1529411765" blue="0.1529411765" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color key="backgroundColor" red="1" green="0.1529411765" blue="0.1529411765" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints> <constraints>
<constraint firstAttribute="height" constant="50" id="f50-JH-t1e"/> <constraint firstAttribute="height" constant="50" id="f50-JH-t1e"/>
@ -1103,9 +1121,7 @@ At least one capital letter, At least one number
<color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <color key="titleColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</state> </state>
<connections> <connections>
<action selector="changePinBttnPressed:" destination="AXR-U0-D4K" eventType="touchUpInside" id="dEd-bo-4PC"/>
<action selector="savePasswordChanges:" destination="AFc-SR-Ozm" eventType="touchUpInside" id="14l-ij-VtN"/> <action selector="savePasswordChanges:" destination="AFc-SR-Ozm" eventType="touchUpInside" id="14l-ij-VtN"/>
<action selector="savePasswordChanges:" destination="4vv-1X-cU7" eventType="touchUpInside" id="Ium-fE-kff"/>
</connections> </connections>
</button> </button>
</subviews> </subviews>

44
GME Remit/Modules/RecipientModules/SetupRecipient/User Interface/View/SetupRecipientViewController.swift

@ -174,8 +174,7 @@ extension SetupRecipientViewController {
countryTextField, paymentModeTextField, bankTextField, branchTextField, countryTextField, paymentModeTextField, bankTextField, branchTextField,
idTextField, stateProvinceTextField, districtTextField, relationTextField, reasonTextField, idTextField, stateProvinceTextField, districtTextField, relationTextField, reasonTextField,
nativeCountryTextField nativeCountryTextField
]
)
])
recipientBankInfomationContainerView.isHidden = true recipientBankInfomationContainerView.isHidden = true
recipientBankInfomationContainerView.alpha = 0 recipientBankInfomationContainerView.alpha = 0
@ -242,6 +241,11 @@ extension SetupRecipientViewController {
recipient.mobile = self?.mobileTextField.mobileNumberText recipient.mobile = self?.mobileTextField.mobileNumberText
recipient.idNumber = self?.idNumberTextField.text recipient.idNumber = self?.idNumberTextField.text
recipient.agent?.accountNumber = self?.accountTextField.text recipient.agent?.accountNumber = self?.accountTextField.text
//changes made for "others"
recipient.relationship = self?.relationTextField.text
recipient.relationshipID = self?.relationTextField.text
recipient.purposeOfRemit = self?.reasonTextField.text
recipient.purposeOfRemitID = self?.reasonTextField.text
return Observable.just(recipient) return Observable.just(recipient)
}.asDriverOnErrorJustComplete() }.asDriverOnErrorJustComplete()
@ -390,13 +394,42 @@ extension SetupRecipientViewController {
}).disposed(by: disposeBag) }).disposed(by: disposeBag)
output.selectedRelation.drive(onNext: { [weak self] in guard let `self` = self else { return } output.selectedRelation.drive(onNext: { [weak self] in guard let `self` = self else { return }
if $0?.title == "Others" {
DispatchQueue.main.async {
let alert = UIAlertController(title: "Specify Occupation", message: "", preferredStyle: .alert)
alert.addTextField(configurationHandler: nil)
alert.addAction(UIAlertAction(title: "Submit", style: .default, handler: { [weak alert] (_) in
guard let textField = alert?.textFields?.first else { return }
self.relationTextField.text = textField.text ?? ""
self.relationTextField.sendActions(for: .editingChanged)
}))
self.present(alert, animated: true, completion: nil)
}
} else {
self.relationTextField.text = $0?.title self.relationTextField.text = $0?.title
self.relationTextField.sendActions(for: .editingChanged) self.relationTextField.sendActions(for: .editingChanged)
}
}).disposed(by: disposeBag) }).disposed(by: disposeBag)
output.selectedReason.drive(onNext: { [weak self] in guard let `self` = self else { return } output.selectedReason.drive(onNext: { [weak self] in guard let `self` = self else { return }
if $0?.title == "Others" {
DispatchQueue.main.async {
let alert = UIAlertController(title: "Specify transfer reason", message: "", preferredStyle: .alert)
alert.addTextField(configurationHandler: nil)
alert.addAction(UIAlertAction(title: "Submit", style: .default, handler: { [weak alert] (_) in
guard let textField = alert?.textFields?.first else { return }
self.reasonTextField.text = textField.text ?? ""
self.reasonTextField.sendActions(for: .editingChanged)
}))
self.present(alert, animated: true, completion: nil)
}
} else {
self.reasonTextField.text = $0?.title self.reasonTextField.text = $0?.title
self.reasonTextField.sendActions(for: .editingChanged) self.reasonTextField.sendActions(for: .editingChanged)
}
}).disposed(by: disposeBag) }).disposed(by: disposeBag)
output.selectedNativeCountry.drive(onNext: { [weak self] in guard let `self` = self else { return } output.selectedNativeCountry.drive(onNext: { [weak self] in guard let `self` = self else { return }
@ -545,5 +578,12 @@ extension SetupRecipientViewController {
cityTextField.text = recipient?.city?.uppercased() cityTextField.text = recipient?.city?.uppercased()
cityTextField.sendActions(for: .editingChanged) cityTextField.sendActions(for: .editingChanged)
relationTextField.text = recipient?.relationshipID?.uppercased()
relationTextField.sendActions(for: .editingChanged)
reasonTextField.text = recipient?.purposeOfRemitID?.uppercased()
reasonTextField.sendActions(for: .editingChanged)
} }
} }

21
GME Remit/Modules/RecipientModules/SetupRecipient/User Interface/View/ViewModel/SetupRecipientViewModel.swift

@ -53,7 +53,6 @@ class SetupRecipientViewModel: ViewModelType {
private let progressLinker = PublishSubject<Bool>() private let progressLinker = PublishSubject<Bool>()
private let errorLinker = PublishSubject<Error>() private let errorLinker = PublishSubject<Error>()
private let successLinker = PublishSubject<ResponseContainerObject<Recipient>>() private let successLinker = PublishSubject<ResponseContainerObject<Recipient>>()
private let dynamicFieldsLinker = PublishSubject<[FieldModel]>() private let dynamicFieldsLinker = PublishSubject<[FieldModel]>()
// Models Linker // Models Linker
@ -186,8 +185,8 @@ class SetupRecipientViewModel: ViewModelType {
let selectedIDType = try? self.selectedIDTypeLinker.value() let selectedIDType = try? self.selectedIDTypeLinker.value()
let selectedStateProvince = try? self.selectedStateProvinceLinker.value() let selectedStateProvince = try? self.selectedStateProvinceLinker.value()
let selectedDistrict = try? self.selectedDistrictLinker.value() let selectedDistrict = try? self.selectedDistrictLinker.value()
let selectedRelation = try? self.selectedRelationLinker.value()
let selectedReason = try? self.selectedReasonLinker.value()
// let selectedRelation = try? self.selectedRelationLinker.value()
// let selectedReason = try? self.selectedReasonLinker.value()
let selectedRecipient = try? self.selectedRecipientLinker.value() let selectedRecipient = try? self.selectedRecipientLinker.value()
let selectedNativeCountry = try? self.selectedNativeCountryLinker.value() let selectedNativeCountry = try? self.selectedNativeCountryLinker.value()
@ -215,11 +214,11 @@ class SetupRecipientViewModel: ViewModelType {
recipient.district = selectedDistrict?.name recipient.district = selectedDistrict?.name
recipient.districtID = selectedDistrict?.id recipient.districtID = selectedDistrict?.id
recipient.relationship = selectedRelation?.title
recipient.relationshipID = selectedRelation?.id
// recipient.relationship = selectedRelation?.title
// recipient.relationshipID = selectedRelation?.id
recipient.purposeOfRemit = selectedReason?.title
recipient.purposeOfRemitID = selectedReason?.id
// recipient.purposeOfRemit = selectedReason?.title
// recipient.purposeOfRemitID = selectedReason?.id
recipient.nativeCountry = selectedNativeCountry?.text recipient.nativeCountry = selectedNativeCountry?.text
recipient.nativeCountryID = selectedNativeCountry?.id recipient.nativeCountryID = selectedNativeCountry?.id
@ -322,8 +321,8 @@ extension SetupRecipientViewModel: SetupRecipientViewModelInterface {
let selectedIDType = model.idTypes?.filter({$0.id == recipient.idType}).first let selectedIDType = model.idTypes?.filter({$0.id == recipient.idType}).first
let selectedStateProvince = model.provinces?.filter({$0.id == recipient.stateID}).first let selectedStateProvince = model.provinces?.filter({$0.id == recipient.stateID}).first
let selectedDistrict = selectedStateProvince?.districts?.filter({$0.id == recipient.districtID}).first let selectedDistrict = selectedStateProvince?.districts?.filter({$0.id == recipient.districtID}).first
let selectedRelation = model.relations?.filter({$0.title == recipient.relationshipID}).first
let selectedReason = model.transferReasons?.filter({$0.title == recipient.purposeOfRemitID}).first
// let selectedRelation = model.relations?.filter({$0.title == recipient.relationshipID}).first
// let selectedReason = model.transferReasons?.filter({$0.title == recipient.purposeOfRemitID}).first
let selectedNativeCountry = nativeCountires.filter({$0.text == recipient.nativeCountry}).first let selectedNativeCountry = nativeCountires.filter({$0.text == recipient.nativeCountry}).first
setSelectedData(with: selectedBank, type: .bank) setSelectedData(with: selectedBank, type: .bank)
@ -331,8 +330,8 @@ extension SetupRecipientViewModel: SetupRecipientViewModelInterface {
setSelectedData(with: selectedIDType, type: .idType) setSelectedData(with: selectedIDType, type: .idType)
setSelectedData(with: selectedStateProvince, type: .stateProvince) setSelectedData(with: selectedStateProvince, type: .stateProvince)
setSelectedData(with: selectedDistrict, type: .district) setSelectedData(with: selectedDistrict, type: .district)
setSelectedData(with: selectedRelation, type: .relation)
setSelectedData(with: selectedReason, type: .reason)
// setSelectedData(with: selectedRelation, type: .relation)
// setSelectedData(with: selectedReason, type: .reason)
setSelectedData(with: selectedNativeCountry, type: .nativeCountry) setSelectedData(with: selectedNativeCountry, type: .nativeCountry)
} }

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

@ -141,7 +141,6 @@ class KYCVerifyStep1Presenter: ViewModelType {
personalInfo.idType = idType?.id personalInfo.idType = idType?.id
personalInfo.additionalIdType = additionalIdType?.id personalInfo.additionalIdType = additionalIdType?.id
personalInfo.occupation = occupation?.id personalInfo.occupation = occupation?.id
print("occupation::\(occupation?.id)")
return personalInfo return personalInfo
} }
return nil return nil

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

@ -364,16 +364,16 @@
<rect key="frame" x="110" y="2" width="203" height="90"/> <rect key="frame" x="110" y="2" width="203" height="90"/>
<subviews> <subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="top" spacing="11" translatesAutoresizingMaskIntoConstraints="NO" id="0aD-sw-Qyj"> <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="top" spacing="11" translatesAutoresizingMaskIntoConstraints="NO" id="0aD-sw-Qyj">
<rect key="frame" x="0.0" y="19" width="203" height="52.5"/>
<rect key="frame" x="0.0" y="18.5" width="203" height="53"/>
<subviews> <subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Front ID" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="udZ-3K-h3F"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Front ID" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="udZ-3K-h3F">
<rect key="frame" x="0.0" y="0.0" width="54" height="17.5"/>
<rect key="frame" x="0.0" y="0.0" width="51.5" height="18"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="15"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="15"/>
<color key="textColor" name="ThemeText"/> <color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="7ar-IW-cpc"> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="7ar-IW-cpc">
<rect key="frame" x="0.0" y="28.5" width="58" height="24"/>
<rect key="frame" x="0.0" y="29" width="55" height="24"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="10"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="10"/>
<state key="normal" title="View Sample"> <state key="normal" title="View Sample">
<color key="titleColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/> <color key="titleColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/>
@ -438,7 +438,7 @@
<rect key="frame" x="0.0" y="14.5" width="203" height="61"/> <rect key="frame" x="0.0" y="14.5" width="203" height="61"/>
<subviews> <subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Back ID" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ekx-8k-twu"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Back ID" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ekx-8k-twu">
<rect key="frame" x="0.0" y="0.0" width="53" height="35"/>
<rect key="frame" x="0.0" y="0.0" width="48.5" height="35"/>
<constraints> <constraints>
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="35" id="Dro-fL-NYs"/> <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="35" id="Dro-fL-NYs"/>
</constraints> </constraints>
@ -447,7 +447,7 @@
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<button opaque="NO" tag="1" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Zan-g4-pEg"> <button opaque="NO" tag="1" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Zan-g4-pEg">
<rect key="frame" x="0.0" y="37" width="58" height="24"/>
<rect key="frame" x="0.0" y="37" width="55" height="24"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="10"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="10"/>
<state key="normal" title="View Sample"> <state key="normal" title="View Sample">
<color key="titleColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/> <color key="titleColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/>
@ -512,7 +512,7 @@
<rect key="frame" x="0.0" y="14.5" width="203" height="61"/> <rect key="frame" x="0.0" y="14.5" width="203" height="61"/>
<subviews> <subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Side ID" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Sh0-hq-xDN"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Side ID" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Sh0-hq-xDN">
<rect key="frame" x="0.0" y="0.0" width="49" height="35"/>
<rect key="frame" x="0.0" y="0.0" width="45.5" height="35"/>
<constraints> <constraints>
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="35" id="cpn-bC-JFD"/> <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="35" id="cpn-bC-JFD"/>
</constraints> </constraints>
@ -521,7 +521,7 @@
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<button opaque="NO" tag="1" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="9C3-eN-bQT"> <button opaque="NO" tag="1" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="9C3-eN-bQT">
<rect key="frame" x="0.0" y="37" width="58" height="24"/>
<rect key="frame" x="0.0" y="37" width="55" height="24"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="10"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="10"/>
<state key="normal" title="View Sample"> <state key="normal" title="View Sample">
<color key="titleColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/> <color key="titleColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/>
@ -631,16 +631,16 @@
<rect key="frame" x="110" y="2" width="203" height="90"/> <rect key="frame" x="110" y="2" width="203" height="90"/>
<subviews> <subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="top" spacing="11" translatesAutoresizingMaskIntoConstraints="NO" id="ny2-zL-SXm"> <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="top" spacing="11" translatesAutoresizingMaskIntoConstraints="NO" id="ny2-zL-SXm">
<rect key="frame" x="0.0" y="19" width="203" height="52.5"/>
<rect key="frame" x="0.0" y="18.5" width="203" height="53"/>
<subviews> <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="Iyj-5P-WEX"> <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="Iyj-5P-WEX">
<rect key="frame" x="0.0" y="0.0" width="118.5" height="17.5"/>
<rect key="frame" x="0.0" y="0.0" width="113.5" height="18"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="15"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="15"/>
<color key="textColor" name="ThemeText"/> <color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="N8X-Wj-Aba"> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="N8X-Wj-Aba">
<rect key="frame" x="0.0" y="28.5" width="58" height="24"/>
<rect key="frame" x="0.0" y="29" width="55" height="24"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="10"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="10"/>
<state key="normal" title="View Sample"> <state key="normal" title="View Sample">
<color key="titleColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/> <color key="titleColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/>
@ -750,16 +750,16 @@
<rect key="frame" x="110" y="2" width="203" height="90"/> <rect key="frame" x="110" y="2" width="203" height="90"/>
<subviews> <subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="top" spacing="11" translatesAutoresizingMaskIntoConstraints="NO" id="8oD-rg-JiK"> <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="top" spacing="11" translatesAutoresizingMaskIntoConstraints="NO" id="8oD-rg-JiK">
<rect key="frame" x="0.0" y="19" width="203" height="52.5"/>
<rect key="frame" x="0.0" y="36" width="203" height="18"/>
<subviews> <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="gMc-Qh-IV0"> <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="gMc-Qh-IV0">
<rect key="frame" x="0.0" y="0.0" width="86" height="17.5"/>
<rect key="frame" x="0.0" y="0.0" width="84" height="18"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="15"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="15"/>
<color key="textColor" name="ThemeText"/> <color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="gG1-Mu-B6x">
<rect key="frame" x="0.0" y="28.5" width="58" height="24"/>
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="gG1-Mu-B6x">
<rect key="frame" x="0.0" y="0.0" width="55" height="0.0"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="10"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="10"/>
<state key="normal" title="View Sample"> <state key="normal" title="View Sample">
<color key="titleColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/> <color key="titleColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/>
@ -821,16 +821,16 @@
<rect key="frame" x="110" y="2" width="203" height="90"/> <rect key="frame" x="110" y="2" width="203" height="90"/>
<subviews> <subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="top" spacing="11" translatesAutoresizingMaskIntoConstraints="NO" id="mj1-sy-KMp"> <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="top" spacing="11" translatesAutoresizingMaskIntoConstraints="NO" id="mj1-sy-KMp">
<rect key="frame" x="0.0" y="19" width="203" height="52.5"/>
<rect key="frame" x="0.0" y="36" width="203" height="18"/>
<subviews> <subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Additional ID Back" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="k9Y-9k-c1R"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Additional ID Back" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="k9Y-9k-c1R">
<rect key="frame" x="0.0" y="0.0" width="124.5" height="17.5"/>
<rect key="frame" x="0.0" y="0.0" width="119" height="18"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="15"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="15"/>
<color key="textColor" name="ThemeText"/> <color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cXd-TW-MlZ">
<rect key="frame" x="0.0" y="28.5" width="58" height="24"/>
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cXd-TW-MlZ">
<rect key="frame" x="0.0" y="0.0" width="55" height="0.0"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="10"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="10"/>
<state key="normal" title="View Sample"> <state key="normal" title="View Sample">
<color key="titleColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/> <color key="titleColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="calibratedRGB"/>

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

@ -158,9 +158,9 @@ class KYCVerifyStep1ViewController: UIViewController {
let image: UIImage? let image: UIImage?
switch type { switch type {
case .frontID: case .frontID:
image = #imageLiteral(resourceName: "samplePassport")
image = UIImage(named: "sample_id_front")
case .backID: case .backID:
image = #imageLiteral(resourceName: "sampleFront")
image = UIImage(named: "sample_id_back")
case .sideID: case .sideID:
image = #imageLiteral(resourceName: "sampleFront") image = #imageLiteral(resourceName: "sampleFront")
case .facePicture: case .facePicture:
@ -256,7 +256,7 @@ extension KYCVerifyStep1ViewController {
sourceOfFundTextField.validCondition = {!$0.isEmpty} sourceOfFundTextField.validCondition = {!$0.isEmpty}
occupationTxtField.validCondition = {!$0.isEmpty} occupationTxtField.validCondition = {!$0.isEmpty}
monthlyIncomeTextField.validCondition = {!$0.isEmpty} monthlyIncomeTextField.validCondition = {!$0.isEmpty}
mobileNumberTextField.validCondition = {!$0.isEmpty && $0.count == 13}
mobileNumberTextField.validCondition = {!$0.isEmpty && $0.count > 12}
businessTypeTextField.validCondition = {!$0.isEmpty} businessTypeTextField.validCondition = {!$0.isEmpty}
emailTextField.validCondition = {$0.isEmail()} emailTextField.validCondition = {$0.isEmail()}
addressTextField.validCondition = {!$0.isEmpty && $0.count < 50} addressTextField.validCondition = {!$0.isEmpty && $0.count < 50}

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

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

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

After

Width: 674  |  Height: 423  |  Size: 476 KiB

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

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

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

After

Width: 674  |  Height: 423  |  Size: 382 KiB

5
GME Remit/Utilities/AppConstants.swift

@ -203,12 +203,11 @@ class Utility {
static func isVerifiedUser() -> Bool { static func isVerifiedUser() -> Bool {
return database.user.bool(.verified) return database.user.bool(.verified)
// return false
} }
static func didSubmitKyc() -> Bool { static func didSubmitKyc() -> Bool {
return database.user.bool(.kyc)
// return false
// return database.user.bool(.kyc)
return false
} }
static func hasUpdatedDefaultCredentials() -> String { static func hasUpdatedDefaultCredentials() -> String {

Loading…
Cancel
Save