Browse Source

added city field at AddRecipient and EditRecipient

pull/1/head
InKwon James Kim 5 years ago
parent
commit
e6bf62b63a
  1. 3
      GMERemittance/Model/Reciepient.swift
  2. 1
      GMERemittance/Module/SendMoneyModules/Recipient/AddReciepient/User Interface/Presenter/AddReciepientPresenter.swift
  3. 36
      GMERemittance/Module/SendMoneyModules/Recipient/AddReciepient/User Interface/View/AddReciepient.storyboard
  4. 86
      GMERemittance/Module/SendMoneyModules/Recipient/AddReciepient/User Interface/View/AddReciepientViewController.swift
  5. 2
      GMERemittance/Module/SendMoneyModules/Recipient/EditReciepient/User Interface/Presenter/EditReciepientPresenter.swift
  6. 82
      GMERemittance/Module/SendMoneyModules/Recipient/EditReciepient/User Interface/View/EditReciepient.storyboard
  7. 792
      GMERemittance/Module/SendMoneyModules/Recipient/EditReciepient/User Interface/View/EditReciepientViewController.swift
  8. 4
      bn.lproj/Localizable.strings
  9. 4
      en.lproj/Localizable.strings
  10. 4
      id.lproj/Localizable.strings
  11. 3
      km.lproj/Localizable.strings
  12. 3
      ko.lproj/Localizable.strings
  13. 3
      mn.lproj/Localizable.strings
  14. 4
      my-MM.lproj/Localizable.strings
  15. 3
      my.lproj/Localizable.strings
  16. 3
      ne.lproj/Localizable.strings
  17. 4
      ru-RU.lproj/Localizable.strings
  18. 3
      si.lproj/Localizable.strings
  19. 4
      th.lproj/Localizable.strings
  20. 3
      uz.lproj/Localizable.strings
  21. 4
      vi-VN.lproj/Localizable.strings

3
GMERemittance/Model/Reciepient.swift

@ -19,6 +19,7 @@ struct RecipientModelFields {
static let lastName = "LastName"
static let country = "Country"
static let state = "State"
static let city = "City"
static let address = "Address"
static let district = "District"
static let relation = "Relation"
@ -37,6 +38,7 @@ class ReceipientViewModel {
var countryId: String?
var stateId: String?
var districtId: String?
var city: String?
var address: String?
var relationId: String?
var mobileNumber: String?
@ -118,6 +120,7 @@ extension Recipient: Serializer {
dict[RecipientModelFields.middleName] = self.middleName ?? ""
dict[RecipientModelFields.state] = self.stateId ?? ""
dict[RecipientModelFields.district] = self.districtId ?? ""
dict[RecipientModelFields.city] = self.city ?? ""
dict[RecipientModelFields.address] = self.address ?? ""
dict[RecipientModelFields.relation] = self.relationId ?? ""
dict[RecipientModelFields.mobileNumber] = self.mobileNumber ?? ""

1
GMERemittance/Module/SendMoneyModules/Recipient/AddReciepient/User Interface/Presenter/AddReciepientPresenter.swift

@ -84,6 +84,7 @@ class AddReciepientPresenter {
reciepient.countryId = model.countryId
reciepient.stateId = model.stateId
reciepient.districtId = model.districtId
reciepient.city = model.city
reciepient.address = model.address
reciepient.relationId = model.relationId
reciepient.reasonId = model.reasonId

36
GMERemittance/Module/SendMoneyModules/Recipient/AddReciepient/User Interface/View/AddReciepient.storyboard

@ -30,13 +30,13 @@
<rect key="frame" x="0.0" y="0.0" width="375" height="869"/>
<subviews>
<view contentMode="scaleToFill" placeholderIntrinsicWidth="375" placeholderIntrinsicHeight="868" translatesAutoresizingMaskIntoConstraints="NO" id="MHV-aS-FoL">
<rect key="frame" x="0.0" y="0.0" width="375" height="868"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="938"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" spacing="30" translatesAutoresizingMaskIntoConstraints="NO" id="bJg-iS-Pg8">
<rect key="frame" x="10" y="0.0" width="355" height="838"/>
<rect key="frame" x="10" y="0.0" width="355" height="908"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="Lsn-v9-r4g">
<rect key="frame" x="0.0" y="0.0" width="355" height="758"/>
<rect key="frame" x="0.0" y="0.0" width="355" height="828"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="Fgq-xq-dmN" userLabel="TitleStackView">
<rect key="frame" x="0.0" y="0.0" width="355" height="63"/>
@ -54,7 +54,7 @@
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="4GX-ko-nbw" userLabel="ContentStackView">
<rect key="frame" x="0.0" y="68" width="355" height="690"/>
<rect key="frame" x="0.0" y="68" width="355" height="760"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="e8u-s3-fVl">
<rect key="frame" x="0.0" y="0.0" width="355" height="60"/>
@ -176,28 +176,28 @@
</textField>
</subviews>
</stackView>
<stackView hidden="YES" opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="fh8-Q6-q8A">
<rect key="frame" x="0.0" y="415" width="355" height="43"/>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="fh8-Q6-q8A">
<rect key="frame" x="0.0" y="420" width="355" height="60"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="City" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="woC-KH-z7x">
<rect key="frame" x="0.0" y="0.0" width="355" height="0.0"/>
<rect key="frame" x="0.0" y="0.0" width="355" height="17"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Enter receiver's City" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="cHL-Cf-h5a">
<rect key="frame" x="0.0" y="0.0" width="355" height="43"/>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Enter receiver's City" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="cHL-Cf-h5a">
<rect key="frame" x="0.0" y="17" width="355" height="43"/>
<constraints>
<constraint firstAttribute="height" constant="43" id="UAG-D4-uH5"/>
</constraints>
<color key="textColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="calibratedRGB"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="18"/>
<textInputTraits key="textInputTraits"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<textInputTraits key="textInputTraits" keyboardType="alphabet"/>
</textField>
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="blF-qq-qJe">
<rect key="frame" x="0.0" y="420" width="355" height="60"/>
<rect key="frame" x="0.0" y="490" width="355" height="60"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Address" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Y1V-LP-rwg">
<rect key="frame" x="0.0" y="0.0" width="355" height="17"/>
@ -217,7 +217,7 @@
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="O4c-KR-vEE">
<rect key="frame" x="0.0" y="490" width="355" height="60"/>
<rect key="frame" x="0.0" y="560" width="355" height="60"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Relation" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aVB-K7-liY">
<rect key="frame" x="0.0" y="0.0" width="355" height="17"/>
@ -237,7 +237,7 @@
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="7Tk-n4-kZ1">
<rect key="frame" x="0.0" y="560" width="355" height="60"/>
<rect key="frame" x="0.0" y="630" width="355" height="60"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Mobile No." textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="s2u-oR-Os8">
<rect key="frame" x="0.0" y="0.0" width="355" height="17"/>
@ -257,7 +257,7 @@
</subviews>
</stackView>
<stackView hidden="YES" opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="2Kh-Q2-iMo">
<rect key="frame" x="0.0" y="625" width="355" height="43"/>
<rect key="frame" x="0.0" y="695" width="355" height="43"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Email (Optional)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rIa-a1-cYb">
<rect key="frame" x="0.0" y="0.0" width="355" height="0.0"/>
@ -277,7 +277,7 @@
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="iLj-pG-L6B">
<rect key="frame" x="0.0" y="630" width="355" height="60"/>
<rect key="frame" x="0.0" y="700" width="355" height="60"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Transfer Reason" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="F7d-NL-98o">
<rect key="frame" x="0.0" y="0.0" width="355" height="17"/>
@ -301,7 +301,7 @@
</subviews>
</stackView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="BKY-7W-R56">
<rect key="frame" x="77.5" y="788" width="200" height="50"/>
<rect key="frame" x="77.5" y="858" width="200" height="50"/>
<color key="backgroundColor" red="0.92941176469999998" green="0.10980392160000001" blue="0.14117647059999999" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="H0T-Sg-A4P"/>
@ -360,6 +360,8 @@
<connections>
<outlet property="addressTextField" destination="R9T-Lf-bM4" id="BLz-cZ-WDi"/>
<outlet property="addressTitleLabel" destination="Y1V-LP-rwg" id="nI3-Z7-OcO"/>
<outlet property="cityTextField" destination="cHL-Cf-h5a" id="w9z-Ri-H3k"/>
<outlet property="cityTitleLabel" destination="woC-KH-z7x" id="yrM-iQ-Hqc"/>
<outlet property="countryNameTitleLabel" destination="gnB-aR-bJE" id="SgA-g3-1cr"/>
<outlet property="countryTextField" destination="rTf-lL-eJb" id="Y3T-Mm-ixS"/>
<outlet property="districtStackView" destination="EtN-9R-GQt" id="Usa-Zf-0eQ"/>

86
GMERemittance/Module/SendMoneyModules/Recipient/AddReciepient/User Interface/View/AddReciepientViewController.swift

@ -11,33 +11,6 @@ import IQKeyboardManagerSwift
class AddReciepientViewController: UIViewController {
private struct StringConstants {
let headerText = "who_to_send_text".localized()
let firstNameText = "first_name_text".localized()
let middleNameText = "enter_receiver_middlename_text".localized()
let lastNameText = "last_name_text".localized()
let countryNameText = "country_text".localized()
let stateText = "state_text".localized()
let districtText = "district_text".localized()
let addressText = "address_text".localized()
let relationText = "relation_text".localized()
let mobileText = "mobile_number_text".localized()
let transferText = "transfer_reason_text".localized()
let saveText = "save_text".localized()
let addRecipientTitle = "add_recipient_text".localized()
// placeholder
let firstnamePlaceholder = "placeholder_enter_receiver_firstname_text".localized()
let lastnamePlaceholder = "placeholder_enter_receiver_lastname_text".localized()
let middlenamePlaceholder = "placeholder_enter_receiver_middle_text".localized()
let countryPlaceholder = "placeholder_select_country_text".localized()
let statePlaceholder = "state_placeholder_text".localized()
let districtPlaceholder = "district_placeholder_text".localized()
let addressPlaceholder = "placeholder_enter_receiver_address_text".localized()
let relationPlaceholder = "placeholder_select_relation_text".localized()
let mobilePlaceholder = "placeholder_enter_reciever_mobile_number_text".localized()
let transferPlaceholder = "placeholder_select_transfer_reason_text".localized()
}
// MARK: IBOutlets
@IBOutlet private weak var scrollView: UIScrollView!
@ -52,7 +25,10 @@ class AddReciepientViewController: UIViewController {
@IBOutlet private weak var mobileTextField: UITextField!
@IBOutlet private weak var emailTextField: UITextField!
@IBOutlet private weak var transferReasonTextField: UITextField!
@IBOutlet private weak var cityTextField: UITextField!
@IBOutlet private weak var saveButton: UIButton!
@IBOutlet private weak var provienceStackView: UIStackView!
@IBOutlet private weak var districtStackView: UIStackView!
@ -68,6 +44,7 @@ class AddReciepientViewController: UIViewController {
@IBOutlet private weak var relationTitleLabel: UILabel!
@IBOutlet private weak var mobileTitleLabel: UILabel!
@IBOutlet private weak var transferTitleLabel: UILabel!
@IBOutlet private weak var cityTitleLabel: UILabel!
// MARK: Properties
@ -130,7 +107,7 @@ class AddReciepientViewController: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationItem.title = StringConstants().addRecipientTitle
self.navigationItem.title = "add_recipient_text".localized()
}
// Trying to show keyboard from viewDidLoad where the view might not be loaded fully.
@ -180,35 +157,38 @@ class AddReciepientViewController: UIViewController {
self.configureLanguage()
self.setTextField()
}
private func configureLanguage() {
self.headerTItleLabel.text = StringConstants().headerText
self.firstNameTitleLabel.text = StringConstants().firstNameText
self.middleNameTitleLabel.text = StringConstants().middleNameText
self.lastNametitleLabel.text = StringConstants().lastNameText
self.countryNameTitleLabel.text = StringConstants().countryNameText
self.stateTitleLabel.text = StringConstants().stateText
self.districtTitleLabel.text = StringConstants().districtText
self.addressTitleLabel.text = StringConstants().addressText
self.relationTitleLabel.text = StringConstants().relationText
self.mobileTitleLabel.text = StringConstants().mobileText
self.transferTitleLabel.text = StringConstants().transferText
saveButton.setTitle(StringConstants().saveText, for: .normal)
self.headerTItleLabel.text = "who_to_send_text".localized()
self.firstNameTitleLabel.text = "first_name_text".localized()
self.middleNameTitleLabel.text = "enter_receiver_middlename_text".localized()
self.lastNametitleLabel.text = "last_name_text".localized()
self.countryNameTitleLabel.text = "country_text".localized()
self.stateTitleLabel.text = "state_text".localized()
self.districtTitleLabel.text = "district_text".localized()
self.addressTitleLabel.text = "address_text".localized()
self.relationTitleLabel.text = "relation_text".localized()
self.mobileTitleLabel.text = "mobile_number_text".localized()
self.transferTitleLabel.text = "transfer_reason_text".localized()
cityTitleLabel.text = "city_text".localized()
saveButton.setTitle("save_text".localized(), for: .normal)
// placeholders
self.firstNameTextField.placeholder = StringConstants().firstnamePlaceholder
self.middleNameTextField.placeholder = StringConstants().middlenamePlaceholder
self.lastNameTextField.placeholder = StringConstants().lastnamePlaceholder
self.countryTextField.placeholder = StringConstants().countryPlaceholder
self.stateProvinceTextField.placeholder = StringConstants().statePlaceholder
self.districtTextField.placeholder = StringConstants().districtPlaceholder
self.addressTextField.placeholder = StringConstants().addressPlaceholder
self.relationTextField.placeholder = StringConstants().relationPlaceholder
self.mobileTextField.placeholder = StringConstants().mobilePlaceholder
self.transferReasonTextField.placeholder = StringConstants().transferPlaceholder
self.firstNameTextField.placeholder = "placeholder_enter_receiver_firstname_text".localized()
self.middleNameTextField.placeholder = "placeholder_enter_receiver_middle_text".localized()
self.lastNameTextField.placeholder = "placeholder_enter_receiver_lastname_text".localized()
self.countryTextField.placeholder = "placeholder_select_country_text".localized()
self.stateProvinceTextField.placeholder = "state_placeholder_text".localized()
self.districtTextField.placeholder = "district_placeholder_text".localized()
self.addressTextField.placeholder = "placeholder_enter_receiver_address_text".localized()
self.relationTextField.placeholder = "placeholder_select_relation_text".localized()
self.mobileTextField.placeholder = "placeholder_enter_reciever_mobile_number_text".localized()
self.transferReasonTextField.placeholder = "placeholder_select_transfer_reason_text".localized()
cityTextField.placeholder = "placeholder_enter_city_text".localized()
}
private func configureView() {
@ -236,7 +216,7 @@ class AddReciepientViewController: UIViewController {
}
private func setupTargets() {
[firstNameTextField, middleNameTextField, lastNameTextField, countryTextField, stateProvinceTextField, districtTextField, addressTextField, relationTextField, mobileTextField, emailTextField, transferReasonTextField].forEach({
[firstNameTextField, middleNameTextField, lastNameTextField, countryTextField, stateProvinceTextField, districtTextField, addressTextField, relationTextField, mobileTextField, emailTextField, transferReasonTextField, cityTextField].forEach({
$0.addTarget(self, action: #selector(self.textFieldChanged(sender:)), for: UIControlEvents.editingChanged)
})
}
@ -249,6 +229,8 @@ class AddReciepientViewController: UIViewController {
self.reciepient?.middleName = middleNameTextField.text!
case lastNameTextField:
self.reciepient?.lastName = lastNameTextField.text!
case cityTextField:
self.reciepient?.city = cityTextField.text!
case addressTextField:
self.reciepient?.address = addressTextField.text!
case mobileTextField:

2
GMERemittance/Module/SendMoneyModules/Recipient/EditReciepient/User Interface/Presenter/EditReciepientPresenter.swift

@ -89,6 +89,7 @@ class EditReciepientPresenter {
reciepient.state = model.state
reciepient.district = model.district
reciepient.districtId = model.districtId
reciepient.city = model.city
reciepient.address = model.address
reciepient.relation = model.relation
reciepient.relationId = model.relationId
@ -109,6 +110,7 @@ class EditReciepientPresenter {
reciepient.countryId = model.countryId
reciepient.state = model.state
reciepient.stateId = model.stateId
reciepient.city = model.city
reciepient.address = model.address
reciepient.relation = model.relation
reciepient.relationId = model.relationId

82
GMERemittance/Module/SendMoneyModules/Recipient/EditReciepient/User Interface/View/EditReciepient.storyboard

@ -57,16 +57,16 @@
<rect key="frame" x="0.0" y="68" width="355" height="922"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="a7v-9T-Kcl">
<rect key="frame" x="0.0" y="0.0" width="355" height="74.5"/>
<rect key="frame" x="0.0" y="0.0" width="355" height="67.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="First Name" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uA5-jW-mEK">
<rect key="frame" x="0.0" y="0.0" width="355" height="31.5"/>
<rect key="frame" x="0.0" y="0.0" width="355" height="24.5"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Enter receiver's first name" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="9Hx-oK-GHi">
<rect key="frame" x="0.0" y="31.5" width="355" height="43"/>
<rect key="frame" x="0.0" y="24.5" width="355" height="43"/>
<constraints>
<constraint firstAttribute="height" constant="43" id="BFc-f4-Df9"/>
</constraints>
@ -77,16 +77,16 @@
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="XxH-Jy-JZG">
<rect key="frame" x="0.0" y="84.5" width="355" height="75"/>
<rect key="frame" x="0.0" y="77.5" width="355" height="68"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Middle Name (Optional)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="K3e-7G-CJy">
<rect key="frame" x="0.0" y="0.0" width="355" height="32"/>
<rect key="frame" x="0.0" y="0.0" width="355" height="25"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Enter receiver's middle name" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="Eej-kG-wrd">
<rect key="frame" x="0.0" y="32" width="355" height="43"/>
<rect key="frame" x="0.0" y="25" width="355" height="43"/>
<constraints>
<constraint firstAttribute="height" constant="43" id="hyU-Gu-CK0"/>
</constraints>
@ -97,16 +97,16 @@
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="5rx-Wn-cUa">
<rect key="frame" x="0.0" y="169.5" width="355" height="74.5"/>
<rect key="frame" x="0.0" y="155.5" width="355" height="67.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Last Name" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tkw-bR-Oy9">
<rect key="frame" x="0.0" y="0.0" width="355" height="31.5"/>
<rect key="frame" x="0.0" y="0.0" width="355" height="24.5"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Enter receiver's last name" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="Wd8-zG-klN">
<rect key="frame" x="0.0" y="31.5" width="355" height="43"/>
<rect key="frame" x="0.0" y="24.5" width="355" height="43"/>
<constraints>
<constraint firstAttribute="height" constant="43" id="uAd-ed-1fn"/>
</constraints>
@ -117,16 +117,16 @@
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="QCh-a4-Tx8">
<rect key="frame" x="0.0" y="254" width="355" height="75"/>
<rect key="frame" x="0.0" y="233" width="355" height="67.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Country" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="alw-ys-yay">
<rect key="frame" x="0.0" y="0.0" width="355" height="32"/>
<rect key="frame" x="0.0" y="0.0" width="355" height="24.5"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Select" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="DdO-f1-13k">
<rect key="frame" x="0.0" y="32" width="355" height="43"/>
<rect key="frame" x="0.0" y="24.5" width="355" height="43"/>
<constraints>
<constraint firstAttribute="height" constant="43" id="dF5-bD-WvK"/>
</constraints>
@ -137,16 +137,16 @@
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="Ju9-Yd-QNB">
<rect key="frame" x="0.0" y="339" width="355" height="74.5"/>
<rect key="frame" x="0.0" y="310.5" width="355" height="68"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="State/Province" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2Ta-4K-fuz">
<rect key="frame" x="0.0" y="0.0" width="355" height="31.5"/>
<rect key="frame" x="0.0" y="0.0" width="355" height="25"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Select" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="3aF-XI-LRm">
<rect key="frame" x="0.0" y="31.5" width="355" height="43"/>
<rect key="frame" x="0.0" y="25" width="355" height="43"/>
<constraints>
<constraint firstAttribute="height" constant="43" id="L5Y-xb-hga"/>
</constraints>
@ -157,16 +157,16 @@
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="3v6-GM-odc">
<rect key="frame" x="0.0" y="423.5" width="355" height="75"/>
<rect key="frame" x="0.0" y="388.5" width="355" height="67.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="District" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1Oh-OJ-MbF">
<rect key="frame" x="0.0" y="0.0" width="355" height="32"/>
<rect key="frame" x="0.0" y="0.0" width="355" height="24.5"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Select" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="c9l-2n-RJY">
<rect key="frame" x="0.0" y="32" width="355" height="43"/>
<rect key="frame" x="0.0" y="24.5" width="355" height="43"/>
<constraints>
<constraint firstAttribute="height" constant="43" id="7dg-OF-1iL"/>
</constraints>
@ -176,37 +176,37 @@
</textField>
</subviews>
</stackView>
<stackView hidden="YES" opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="bzY-A3-FCG">
<rect key="frame" x="0.0" y="503.5" width="355" height="43"/>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="bzY-A3-FCG">
<rect key="frame" x="0.0" y="466" width="355" height="67.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="City" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qfo-M5-t8w">
<rect key="frame" x="0.0" y="0.0" width="355" height="0.0"/>
<rect key="frame" x="0.0" y="0.0" width="355" height="24.5"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Enter receiver's City" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="N3C-4L-Ki7">
<rect key="frame" x="0.0" y="0.0" width="355" height="43"/>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Enter receiver's city" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="N3C-4L-Ki7">
<rect key="frame" x="0.0" y="24.5" width="355" height="43"/>
<constraints>
<constraint firstAttribute="height" constant="43" id="ZJj-ea-FF9"/>
</constraints>
<color key="textColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="calibratedRGB"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="18"/>
<textInputTraits key="textInputTraits"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<textInputTraits key="textInputTraits" keyboardType="alphabet"/>
</textField>
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="9F3-Xx-a4b">
<rect key="frame" x="0.0" y="508.5" width="355" height="74.5"/>
<rect key="frame" x="0.0" y="543.5" width="355" height="68"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Address" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LNf-pd-Eek">
<rect key="frame" x="0.0" y="0.0" width="355" height="31.5"/>
<rect key="frame" x="0.0" y="0.0" width="355" height="25"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Enter receiver's Address" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="vGP-fz-jbt">
<rect key="frame" x="0.0" y="31.5" width="355" height="43"/>
<rect key="frame" x="0.0" y="25" width="355" height="43"/>
<constraints>
<constraint firstAttribute="height" constant="43" id="aT8-I4-gb5"/>
</constraints>
@ -217,16 +217,16 @@
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="gkA-0g-al0">
<rect key="frame" x="0.0" y="593" width="355" height="75"/>
<rect key="frame" x="0.0" y="621.5" width="355" height="67.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Relation" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cpR-Ig-Yjj">
<rect key="frame" x="0.0" y="0.0" width="355" height="32"/>
<rect key="frame" x="0.0" y="0.0" width="355" height="24.5"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Select" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="cpV-EL-0Z1">
<rect key="frame" x="0.0" y="32" width="355" height="43"/>
<rect key="frame" x="0.0" y="24.5" width="355" height="43"/>
<constraints>
<constraint firstAttribute="height" constant="43" id="4Mm-K7-RVg"/>
</constraints>
@ -237,16 +237,16 @@
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="tiu-zQ-uyv">
<rect key="frame" x="0.0" y="678" width="355" height="74.5"/>
<rect key="frame" x="0.0" y="699" width="355" height="67.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Mobile No." textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0EU-CA-Xqg">
<rect key="frame" x="0.0" y="0.0" width="355" height="31.5"/>
<rect key="frame" x="0.0" y="0.0" width="355" height="24.5"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Enter receiver's mobile number" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="I91-DE-eBH">
<rect key="frame" x="0.0" y="31.5" width="355" height="43"/>
<rect key="frame" x="0.0" y="24.5" width="355" height="43"/>
<constraints>
<constraint firstAttribute="height" constant="43" id="foA-9z-yu9"/>
</constraints>
@ -257,16 +257,16 @@
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="0Pw-sK-dSz">
<rect key="frame" x="0.0" y="762.5" width="355" height="75"/>
<rect key="frame" x="0.0" y="776.5" width="355" height="68"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Email (Optional)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VuB-gh-lpj">
<rect key="frame" x="0.0" y="0.0" width="355" height="32"/>
<rect key="frame" x="0.0" y="0.0" width="355" height="25"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Enter receiver's email address" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="9ed-NF-4Bh">
<rect key="frame" x="0.0" y="32" width="355" height="43"/>
<rect key="frame" x="0.0" y="25" width="355" height="43"/>
<constraints>
<constraint firstAttribute="height" constant="43" id="gjZ-nr-ohs"/>
</constraints>
@ -277,16 +277,16 @@
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="LKF-1o-Pqq">
<rect key="frame" x="0.0" y="847.5" width="355" height="74.5"/>
<rect key="frame" x="0.0" y="854.5" width="355" height="67.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Transfer Reason" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Lea-V1-U7a">
<rect key="frame" x="0.0" y="0.0" width="355" height="31.5"/>
<rect key="frame" x="0.0" y="0.0" width="355" height="24.5"/>
<fontDescription key="fontDescription" name="SanFranciscoText-Regular" family="San Francisco Text" pointSize="14"/>
<color key="textColor" red="0.2901960784" green="0.2901960784" blue="0.2901960784" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Select" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="mXe-ay-5tu">
<rect key="frame" x="0.0" y="31.5" width="355" height="43"/>
<rect key="frame" x="0.0" y="24.5" width="355" height="43"/>
<constraints>
<constraint firstAttribute="height" constant="43" id="TWh-Sv-GdZ"/>
</constraints>
@ -360,6 +360,8 @@
<connections>
<outlet property="addressTextField" destination="vGP-fz-jbt" id="1pN-zR-qH8"/>
<outlet property="addressTitleLabel" destination="LNf-pd-Eek" id="fa3-08-4RQ"/>
<outlet property="cityTextField" destination="N3C-4L-Ki7" id="ilJ-we-lbg"/>
<outlet property="cityTitleLabel" destination="qfo-M5-t8w" id="N7d-e3-1rB"/>
<outlet property="countryNameTitleLabel" destination="alw-ys-yay" id="vRQ-Oa-Pfm"/>
<outlet property="countryTextField" destination="DdO-f1-13k" id="wBn-TT-uSg"/>
<outlet property="districtStackView" destination="3v6-GM-odc" id="cOf-hf-cya"/>

792
GMERemittance/Module/SendMoneyModules/Recipient/EditReciepient/User Interface/View/EditReciepientViewController.swift

@ -9,402 +9,412 @@
import UIKit
class EditReciepientViewController: UIViewController {
struct StringConstants {
let headerText = "who_to_send_text".localized()
let firstNameText = "first_name_text".localized()
let middleNameText = "enter_receiver_middlename_text".localized()
let lastNameText = "last_name_text".localized()
let countryNameText = "country_text".localized()
let stateText = "state_text".localized()
let districtText = "district_text".localized()
let addressText = "address_text".localized()
let relationText = "relation_text".localized()
let mobileText = "mobile_number_text".localized()
let transferText = "transfer_reason_text".localized()
let saveText = "save_text".localized()
// placeholder
let firstnamePlaceholder = "placeholder_enter_receiver_firstname_text".localized()
let lastnamePlaceholder = "placeholder_enter_receiver_middle_text".localized()
let middlenamePlaceholder = "placeholder_enter_receiver_lastname_text".localized()
let countryPlaceholder = "placeholder_select_country_text".localized()
let statePlaceholder = "state_placeholder_text".localized()
let districtPlaceholder = "district_placeholder_text".localized()
let addressPlaceholder = "placeholder_enter_receiver_address_text".localized()
let relationPlaceholder = "placeholder_select_relation_text".localized()
let mobilePlaceholder = "placeholder_enter_reciever_mobile_number_text".localized()
let transferPlaceholder = "placeholder_select_transfer_reason_text".localized()
}
// MARK: IBOutlets
@IBOutlet weak var firstNameTextField: UITextField!
@IBOutlet weak var middleNameTextField: UITextField!
@IBOutlet weak var lastNameTextField: UITextField!
@IBOutlet weak var countryTextField: UITextField!
@IBOutlet weak var stateProvinceTextField: UITextField!
@IBOutlet weak var districtTextField: UITextField!
@IBOutlet weak var addressTextField: UITextField!
@IBOutlet weak var relationTextField: UITextField!
@IBOutlet weak var mobileTextField: UITextField!
@IBOutlet weak var emailTextField: UITextField!
@IBOutlet weak var transferReasonTextField: UITextField!
@IBOutlet weak var saveButton: UIButton!
@IBOutlet weak var provienceStackView: UIStackView!
@IBOutlet weak var districtStackView: UIStackView!
// titles
@IBOutlet weak var headerTItleLabel: UILabel!
@IBOutlet weak var firstNameTitleLabel: UILabel!
@IBOutlet weak var middleNameTitleLabel: UILabel!
@IBOutlet weak var lastNametitleLabel: UILabel!
@IBOutlet weak var countryNameTitleLabel: UILabel!
@IBOutlet weak var stateTitleLabel: UILabel!
@IBOutlet weak var districtTitleLabel: UILabel!
@IBOutlet weak var addressTitleLabel: UILabel!
@IBOutlet weak var relationTitleLabel: UILabel!
@IBOutlet weak var mobileTitleLabel: UILabel!
@IBOutlet weak var transferTitleLabel: UILabel!
// MARK: Properties
var presenter: EditReciepientModuleInterface?
var countries: [SendMoneyCountryViewModel]?
var transferReasons: [SendMoneyTransferReasonViewModel]?
var relations: [SendMoneyRelationViewModel]?
var reciepient: EditRecipientRecipientViewModel? {
didSet {
self.populateInformations()
}
}
var selectedCountry: SendMoneyCountryViewModel? {
didSet {
self.countryTextField.text = selectedCountry?.name
let shouldShowProvienceField = (selectedCountry?.proviencesRequired ?? "" ) == "true"
self.configureView(isHidden: !shouldShowProvienceField)
self.reciepient?.countryId = self.selectedCountry?.id
self.reciepient?.country = self.selectedCountry?.name
}
}
var selectedProvience: SendMoneyProvienceViewModel? {
didSet {
self.stateProvinceTextField.text = selectedProvience?.name
self.reciepient?.stateId = self.selectedProvience?.id
}
}
var selectedDistrict: SendMoneyDistrictViewModel? {
didSet {
self.districtTextField.text = selectedDistrict?.name
self.reciepient?.districtId = self.selectedDistrict?.id
}
}
var selectedRelation: SendMoneyRelationViewModel? {
didSet {
self.relationTextField.text = selectedRelation?.title
self.reciepient?.relationId = self.selectedRelation?.id
}
}
var selectedTransferReason: SendMoneyTransferReasonViewModel? {
didSet {
self.transferReasonTextField.text = selectedTransferReason?.title
self.reciepient?.reasonId = selectedTransferReason?.id
}
}
// MARK: VC's Life cycle
override func viewDidLoad() {
super.viewDidLoad()
self.setup()
self.setupDelegates()
self.setupTargets()
self.presenter?.viewIsReady()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationItem.title = "Edit Receipient"
}
// MARK: IBActions
@IBAction func save(_ sender: UIButton) {
self.view.endEditing(true)
if let reciepient = self.reciepient {
self.presenter?.save(model: reciepient)
}
}
// MARK: Other Functions
private func setup() {
// all setup should be done here
self.setupNavigation()
self.configureView(isHidden: true)
self.configureLanguage()
}
private func configureLanguage() {
self.headerTItleLabel.text = StringConstants().headerText
self.firstNameTitleLabel.text = StringConstants().firstNameText
self.middleNameTitleLabel.text = StringConstants().middleNameText
self.lastNametitleLabel.text = StringConstants().lastNameText
self.countryNameTitleLabel.text = StringConstants().countryNameText
self.stateTitleLabel.text = StringConstants().stateText
self.districtTitleLabel.text = StringConstants().districtText
self.addressTitleLabel.text = StringConstants().addressText
self.relationTitleLabel.text = StringConstants().relationText
self.mobileTitleLabel.text = StringConstants().mobileText
self.transferTitleLabel.text = StringConstants().transferText
saveButton.setTitle(StringConstants().saveText, for: .normal)
// placeholders
self.firstNameTextField.placeholder = StringConstants().firstnamePlaceholder
self.middleNameTextField.placeholder = StringConstants().middlenamePlaceholder
self.lastNameTextField.placeholder = StringConstants().lastnamePlaceholder
self.countryTextField.placeholder = StringConstants().countryPlaceholder
self.stateProvinceTextField.placeholder = StringConstants().statePlaceholder
self.districtTextField.placeholder = StringConstants().districtPlaceholder
self.addressTextField.placeholder = StringConstants().addressPlaceholder
self.relationTextField.placeholder = StringConstants().relationPlaceholder
self.mobileTextField.placeholder = StringConstants().mobilePlaceholder
self.transferReasonTextField.placeholder = StringConstants().transferPlaceholder
}
private func configureView(isHidden: Bool) {
self.provienceStackView.isHidden = isHidden
self.districtStackView.isHidden = isHidden
}
private func setupDelegates() {
self.countryTextField.delegate = self
self.stateProvinceTextField.delegate = self
self.districtTextField.delegate = self
self.relationTextField.delegate = self
self.transferReasonTextField.delegate = self
}
private func setupTargets() {
[firstNameTextField, middleNameTextField, lastNameTextField, countryTextField, stateProvinceTextField, districtTextField, addressTextField, relationTextField, mobileTextField, emailTextField, transferReasonTextField].forEach({
$0?.addTarget(self, action: #selector(self.textFieldChanged(sender:)), for: UIControlEvents.editingChanged)
})
}
@objc private func textFieldChanged(sender: UITextField) {
switch sender {
case firstNameTextField:
self.reciepient?.firstName = firstNameTextField.text!
case middleNameTextField:
self.reciepient?.middleName = middleNameTextField.text!
case lastNameTextField:
self.reciepient?.lastName = lastNameTextField.text!
case addressTextField:
self.reciepient?.address = addressTextField.text!
case mobileTextField:
self.reciepient?.mobileNumber = mobileTextField.text!
case emailTextField:
self.reciepient?.email = emailTextField.text!
default:
break
}
}
private func populateInformations() {
self.firstNameTextField.text = self.reciepient?.firstName
self.middleNameTextField.text = self.reciepient?.middleName
self.lastNameTextField.text = self.reciepient?.lastName
let relation = self.relations?.filter({
$0.title == self.reciepient?.relation
}).first?.title
self.relationTextField.text = relation
self.mobileTextField.text = self.reciepient?.mobileNumber
self.emailTextField.text = self.reciepient?.email
let transferReason = self.transferReasons?.filter({
$0.title == self.reciepient?.reason
}).first?.title
self.transferReasonTextField.text = transferReason
self.addressTextField.text = reciepient?.address
// For sync country in reciepient model
self.selectedCountry = self.countries?.filter{
$0.name == self.reciepient?.country
}.first
// For sync provience in reciepient model
self.selectedProvience = self.selectedCountry?.proviences?.filter{
$0.id == self.reciepient?.stateId
}.first
// For sync district in reciepient model
self.selectedDistrict = self.selectedProvience?.districts?.filter{
$0.id == self.reciepient?.districtId
}.first
}
private func setupNavigation() {
self.navigationItem.backBarButtonItem?.image =
#imageLiteral(resourceName: "backIconBlack")
self.navigationController?.navigationBar.tintColor = UIColor.black
}
private func showCountryPickerview() {
let viewcontroller = UIStoryboard.init(name: "CountryPicker", bundle: nil).instantiateViewController(withIdentifier: "CountryPickerViewController") as! CountryPickerViewController
viewcontroller.data = self.countries ?? []
viewcontroller.doneAction = self.countrySelected
viewcontroller.defaultSelectedData = [self.selectedCountry]
viewcontroller.type = PickerTitle.country
self.present(viewcontroller, animated: true, completion: nil)
}
private func getPickerViewController()-> ItemsPickerViewController {
return UIStoryboard.init(name: "ItemsPicker", bundle: nil).instantiateViewController(withIdentifier: "ItemsPickerViewController") as! ItemsPickerViewController
}
private func showProviencePickerview() {
let viewcontroller = self.getPickerViewController()
let proviences = self.selectedCountry?.proviences ?? []
let names = proviences.compactMap({$0.name})
viewcontroller.data = names
viewcontroller.type = PickerTitle.state
viewcontroller.doneAction = self.provienceSelected
viewcontroller.defaultSelectedData = [self.selectedProvience?.name ?? ""]
self.present(viewcontroller, animated: true, completion: nil)
}
private func showDistrictPickerview() {
let viewcontroller = self.getPickerViewController()
let districts = self.selectedProvience?.districts ?? []
let names = districts.compactMap({$0.name})
viewcontroller.data = names
viewcontroller.type = PickerTitle.district
viewcontroller.doneAction = self.districtSelected
viewcontroller.defaultSelectedData = [self.selectedDistrict?.name ?? ""]
self.present(viewcontroller, animated: true, completion: nil)
}
private func showRelationPickerView() {
let viewcontroller = self.getPickerViewController()
let relations = self.relations ?? []
let names = relations.compactMap({$0.title})
viewcontroller.data = names
viewcontroller.type = PickerTitle.relation
viewcontroller.doneAction = self.relationSelected
viewcontroller.defaultSelectedData = [self.selectedRelation?.title ?? ""]
self.present(viewcontroller, animated: true, completion: nil)
}
private func showTransferReasonPickerView() {
let viewcontroller = self.getPickerViewController()
let transferReasons = self.transferReasons ?? []
let names = transferReasons.compactMap({$0.title})
viewcontroller.data = names
viewcontroller.type = PickerTitle.transferReasons
viewcontroller.doneAction = self.transferReasonSelected
viewcontroller.defaultSelectedData = [self.selectedTransferReason?.title ?? ""]
self.present(viewcontroller, animated: true, completion: nil)
}
func transferReasonSelected(reasons: [String]) {
let _reason = self.transferReasons?.filter({($0.title ?? "") == (reasons.first ?? "") }).first
self.selectedTransferReason = _reason
}
func relationSelected(relations: [String]) {
let _relations = self.relations?.filter({($0.title ?? "") == (relations.first ?? "") }).first
self.selectedRelation = _relations
}
func districtSelected(district: [String]) {
let _district = (self.selectedProvience?.districts ?? []).filter({
( $0.name ?? "" ) == ( district.first ?? "" )
}).first
self.selectedDistrict = _district
}
func provienceSelected(provience: [String]) {
let _provience = (self.selectedCountry?.proviences ?? []).filter({
($0.name ?? "") == (provience.first ?? "")
})
self.selectedProvience = _provience.first
// according to selected province, clear district
self.selectedDistrict = nil
}
func countrySelected(models: [SendMoneyCountryViewModel]) {
self.selectedCountry = models.first
}
func showLoading() {
self.showProgressHud()
}
func hideLoading() {
self.hideProgressHud()
}
func show(error: String) {
self.alert(message: error)
}
struct StringConstants {
let headerText = "who_to_send_text".localized()
let firstNameText = "first_name_text".localized()
let middleNameText = "enter_receiver_middlename_text".localized()
let lastNameText = "last_name_text".localized()
let countryNameText = "country_text".localized()
let stateText = "state_text".localized()
let districtText = "district_text".localized()
let addressText = "address_text".localized()
let relationText = "relation_text".localized()
let mobileText = "mobile_number_text".localized()
let transferText = "transfer_reason_text".localized()
let cityText = "city_text".localized()
let saveText = "save_text".localized()
// placeholder
let firstnamePlaceholder = "placeholder_enter_receiver_firstname_text".localized()
let lastnamePlaceholder = "placeholder_enter_receiver_middle_text".localized()
let middlenamePlaceholder = "placeholder_enter_receiver_lastname_text".localized()
let countryPlaceholder = "placeholder_select_country_text".localized()
let statePlaceholder = "state_placeholder_text".localized()
let districtPlaceholder = "district_placeholder_text".localized()
let addressPlaceholder = "placeholder_enter_receiver_address_text".localized()
let relationPlaceholder = "placeholder_select_relation_text".localized()
let mobilePlaceholder = "placeholder_enter_reciever_mobile_number_text".localized()
let transferPlaceholder = "placeholder_select_transfer_reason_text".localized()
let cityPlaceholder = "placeholder_enter_city_text".localized()
}
// MARK: IBOutlets
@IBOutlet weak var firstNameTextField: UITextField!
@IBOutlet weak var middleNameTextField: UITextField!
@IBOutlet weak var lastNameTextField: UITextField!
@IBOutlet weak var countryTextField: UITextField!
@IBOutlet weak var stateProvinceTextField: UITextField!
@IBOutlet weak var districtTextField: UITextField!
@IBOutlet weak var addressTextField: UITextField!
@IBOutlet weak var relationTextField: UITextField!
@IBOutlet weak var mobileTextField: UITextField!
@IBOutlet weak var emailTextField: UITextField!
@IBOutlet weak var transferReasonTextField: UITextField!
@IBOutlet weak var cityTextField: UITextField!
@IBOutlet weak var saveButton: UIButton!
@IBOutlet weak var provienceStackView: UIStackView!
@IBOutlet weak var districtStackView: UIStackView!
// titles
@IBOutlet weak var headerTItleLabel: UILabel!
@IBOutlet weak var firstNameTitleLabel: UILabel!
@IBOutlet weak var middleNameTitleLabel: UILabel!
@IBOutlet weak var lastNametitleLabel: UILabel!
@IBOutlet weak var countryNameTitleLabel: UILabel!
@IBOutlet weak var stateTitleLabel: UILabel!
@IBOutlet weak var districtTitleLabel: UILabel!
@IBOutlet weak var addressTitleLabel: UILabel!
@IBOutlet weak var relationTitleLabel: UILabel!
@IBOutlet weak var mobileTitleLabel: UILabel!
@IBOutlet weak var transferTitleLabel: UILabel!
@IBOutlet weak var cityTitleLabel: UILabel!
// MARK: Properties
var presenter: EditReciepientModuleInterface?
var countries: [SendMoneyCountryViewModel]?
var transferReasons: [SendMoneyTransferReasonViewModel]?
var relations: [SendMoneyRelationViewModel]?
var reciepient: EditRecipientRecipientViewModel? {
didSet {
self.populateInformations()
}
}
var selectedCountry: SendMoneyCountryViewModel? {
didSet {
self.countryTextField.text = selectedCountry?.name
let shouldShowProvienceField = (selectedCountry?.proviencesRequired ?? "" ) == "true"
self.configureView(isHidden: !shouldShowProvienceField)
self.reciepient?.countryId = self.selectedCountry?.id
self.reciepient?.country = self.selectedCountry?.name
}
}
var selectedProvience: SendMoneyProvienceViewModel? {
didSet {
self.stateProvinceTextField.text = selectedProvience?.name
self.reciepient?.stateId = self.selectedProvience?.id
}
}
var selectedDistrict: SendMoneyDistrictViewModel? {
didSet {
self.districtTextField.text = selectedDistrict?.name
self.reciepient?.districtId = self.selectedDistrict?.id
}
}
var selectedRelation: SendMoneyRelationViewModel? {
didSet {
self.relationTextField.text = selectedRelation?.title
self.reciepient?.relationId = self.selectedRelation?.id
}
}
var selectedTransferReason: SendMoneyTransferReasonViewModel? {
didSet {
self.transferReasonTextField.text = selectedTransferReason?.title
self.reciepient?.reasonId = selectedTransferReason?.id
}
}
// MARK: VC's Life cycle
override func viewDidLoad() {
super.viewDidLoad()
self.setup()
self.setupDelegates()
self.setupTargets()
self.presenter?.viewIsReady()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationItem.title = "Edit Receipient"
}
// MARK: IBActions
@IBAction func save(_ sender: UIButton) {
self.view.endEditing(true)
if let reciepient = self.reciepient {
self.presenter?.save(model: reciepient)
}
}
// MARK: Other Functions
private func setup() {
// all setup should be done here
self.setupNavigation()
self.configureView(isHidden: true)
self.configureLanguage()
}
private func configureLanguage() {
self.headerTItleLabel.text = StringConstants().headerText
self.firstNameTitleLabel.text = StringConstants().firstNameText
self.middleNameTitleLabel.text = StringConstants().middleNameText
self.lastNametitleLabel.text = StringConstants().lastNameText
self.countryNameTitleLabel.text = StringConstants().countryNameText
self.stateTitleLabel.text = StringConstants().stateText
self.districtTitleLabel.text = StringConstants().districtText
self.addressTitleLabel.text = StringConstants().addressText
self.relationTitleLabel.text = StringConstants().relationText
self.mobileTitleLabel.text = StringConstants().mobileText
self.transferTitleLabel.text = StringConstants().transferText
cityTitleLabel.text = StringConstants().cityText
saveButton.setTitle(StringConstants().saveText, for: .normal)
// placeholders
self.firstNameTextField.placeholder = StringConstants().firstnamePlaceholder
self.middleNameTextField.placeholder = StringConstants().middlenamePlaceholder
self.lastNameTextField.placeholder = StringConstants().lastnamePlaceholder
self.countryTextField.placeholder = StringConstants().countryPlaceholder
self.stateProvinceTextField.placeholder = StringConstants().statePlaceholder
self.districtTextField.placeholder = StringConstants().districtPlaceholder
self.addressTextField.placeholder = StringConstants().addressPlaceholder
self.relationTextField.placeholder = StringConstants().relationPlaceholder
self.mobileTextField.placeholder = StringConstants().mobilePlaceholder
self.transferReasonTextField.placeholder = StringConstants().transferPlaceholder
cityTextField.placeholder = StringConstants().cityPlaceholder
}
private func configureView(isHidden: Bool) {
self.provienceStackView.isHidden = isHidden
self.districtStackView.isHidden = isHidden
}
private func setupDelegates() {
self.countryTextField.delegate = self
self.stateProvinceTextField.delegate = self
self.districtTextField.delegate = self
self.relationTextField.delegate = self
self.transferReasonTextField.delegate = self
}
private func setupTargets() {
[firstNameTextField, middleNameTextField, lastNameTextField, countryTextField, stateProvinceTextField, districtTextField, addressTextField, relationTextField, mobileTextField, emailTextField, transferReasonTextField, cityTextField].forEach({
$0?.addTarget(self, action: #selector(self.textFieldChanged(sender:)), for: UIControlEvents.editingChanged)
})
}
@objc private func textFieldChanged(sender: UITextField) {
switch sender {
case firstNameTextField:
self.reciepient?.firstName = firstNameTextField.text!
case middleNameTextField:
self.reciepient?.middleName = middleNameTextField.text!
case lastNameTextField:
self.reciepient?.lastName = lastNameTextField.text!
case cityTextField:
self.reciepient?.city = cityTextField.text!
case addressTextField:
self.reciepient?.address = addressTextField.text!
case mobileTextField:
self.reciepient?.mobileNumber = mobileTextField.text!
case emailTextField:
self.reciepient?.email = emailTextField.text!
default:
break
}
}
private func populateInformations() {
self.firstNameTextField.text = self.reciepient?.firstName
self.middleNameTextField.text = self.reciepient?.middleName
self.lastNameTextField.text = self.reciepient?.lastName
let relation = self.relations?.filter({
$0.title == self.reciepient?.relation
}).first?.title
self.relationTextField.text = relation
self.mobileTextField.text = self.reciepient?.mobileNumber
self.emailTextField.text = self.reciepient?.email
let transferReason = self.transferReasons?.filter({
$0.title == self.reciepient?.reason
}).first?.title
self.transferReasonTextField.text = transferReason
self.cityTextField.text = reciepient?.city
self.addressTextField.text = reciepient?.address
// For sync country in reciepient model
self.selectedCountry = self.countries?.filter{
$0.name == self.reciepient?.country
}.first
// For sync provience in reciepient model
self.selectedProvience = self.selectedCountry?.proviences?.filter{
$0.id == self.reciepient?.stateId
}.first
// For sync district in reciepient model
self.selectedDistrict = self.selectedProvience?.districts?.filter{
$0.id == self.reciepient?.districtId
}.first
}
private func setupNavigation() {
self.navigationItem.backBarButtonItem?.image =
#imageLiteral(resourceName: "backIconBlack")
self.navigationController?.navigationBar.tintColor = UIColor.black
}
private func showCountryPickerview() {
let viewcontroller = UIStoryboard.init(name: "CountryPicker", bundle: nil).instantiateViewController(withIdentifier: "CountryPickerViewController") as! CountryPickerViewController
viewcontroller.data = self.countries ?? []
viewcontroller.doneAction = self.countrySelected
viewcontroller.defaultSelectedData = [self.selectedCountry]
viewcontroller.type = PickerTitle.country
self.present(viewcontroller, animated: true, completion: nil)
}
private func getPickerViewController()-> ItemsPickerViewController {
return UIStoryboard.init(name: "ItemsPicker", bundle: nil).instantiateViewController(withIdentifier: "ItemsPickerViewController") as! ItemsPickerViewController
}
private func showProviencePickerview() {
let viewcontroller = self.getPickerViewController()
let proviences = self.selectedCountry?.proviences ?? []
let names = proviences.compactMap({$0.name})
viewcontroller.data = names
viewcontroller.type = PickerTitle.state
viewcontroller.doneAction = self.provienceSelected
viewcontroller.defaultSelectedData = [self.selectedProvience?.name ?? ""]
self.present(viewcontroller, animated: true, completion: nil)
}
private func showDistrictPickerview() {
let viewcontroller = self.getPickerViewController()
let districts = self.selectedProvience?.districts ?? []
let names = districts.compactMap({$0.name})
viewcontroller.data = names
viewcontroller.type = PickerTitle.district
viewcontroller.doneAction = self.districtSelected
viewcontroller.defaultSelectedData = [self.selectedDistrict?.name ?? ""]
self.present(viewcontroller, animated: true, completion: nil)
}
private func showRelationPickerView() {
let viewcontroller = self.getPickerViewController()
let relations = self.relations ?? []
let names = relations.compactMap({$0.title})
viewcontroller.data = names
viewcontroller.type = PickerTitle.relation
viewcontroller.doneAction = self.relationSelected
viewcontroller.defaultSelectedData = [self.selectedRelation?.title ?? ""]
self.present(viewcontroller, animated: true, completion: nil)
}
private func showTransferReasonPickerView() {
let viewcontroller = self.getPickerViewController()
let transferReasons = self.transferReasons ?? []
let names = transferReasons.compactMap({$0.title})
viewcontroller.data = names
viewcontroller.type = PickerTitle.transferReasons
viewcontroller.doneAction = self.transferReasonSelected
viewcontroller.defaultSelectedData = [self.selectedTransferReason?.title ?? ""]
self.present(viewcontroller, animated: true, completion: nil)
}
func transferReasonSelected(reasons: [String]) {
let _reason = self.transferReasons?.filter({($0.title ?? "") == (reasons.first ?? "") }).first
self.selectedTransferReason = _reason
}
func relationSelected(relations: [String]) {
let _relations = self.relations?.filter({($0.title ?? "") == (relations.first ?? "") }).first
self.selectedRelation = _relations
}
func districtSelected(district: [String]) {
let _district = (self.selectedProvience?.districts ?? []).filter({
( $0.name ?? "" ) == ( district.first ?? "" )
}).first
self.selectedDistrict = _district
}
func provienceSelected(provience: [String]) {
let _provience = (self.selectedCountry?.proviences ?? []).filter({
($0.name ?? "") == (provience.first ?? "")
})
self.selectedProvience = _provience.first
// according to selected province, clear district
self.selectedDistrict = nil
}
func countrySelected(models: [SendMoneyCountryViewModel]) {
self.selectedCountry = models.first
}
func showLoading() {
self.showProgressHud()
}
func hideLoading() {
self.hideProgressHud()
}
func show(error: String) {
self.alert(message: error)
}
}
// MARK: EditReciepientViewInterface
extension EditReciepientViewController: EditReciepientViewInterface {
func show(countries: [SendMoneyCountryViewModel]) {
self.countries = countries
}
func show(transferReasons: [SendMoneyTransferReasonViewModel]) {
self.transferReasons = transferReasons
}
func show(relations: [SendMoneyRelationViewModel]) {
self.relations = relations
}
func show(recipient: EditRecipientRecipientViewModel) {
self.reciepient = recipient
}
func show(countries: [SendMoneyCountryViewModel]) {
self.countries = countries
}
func show(transferReasons: [SendMoneyTransferReasonViewModel]) {
self.transferReasons = transferReasons
}
func show(relations: [SendMoneyRelationViewModel]) {
self.relations = relations
}
func show(recipient: EditRecipientRecipientViewModel) {
self.reciepient = recipient
}
}
extension EditReciepientViewController: UITextFieldDelegate {
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
switch textField {
case countryTextField:
showCountryPickerview()
return false
case stateProvinceTextField:
self.showProviencePickerview()
return false
case districtTextField:
self.showDistrictPickerview()
return false
case relationTextField:
self.showRelationPickerView()
return false
case transferReasonTextField:
self.showTransferReasonPickerView()
return false
default:
return true
}
}
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
switch textField {
case countryTextField:
showCountryPickerview()
return false
case stateProvinceTextField:
self.showProviencePickerview()
return false
case districtTextField:
self.showDistrictPickerview()
return false
case relationTextField:
self.showRelationPickerView()
return false
case transferReasonTextField:
self.showTransferReasonPickerView()
return false
default:
return true
}
}
}

4
bn.lproj/Localizable.strings

@ -487,3 +487,7 @@
// SendMoney For Reward
"estimated_earning_points_text" = "Estimated earning points";
// Add City Field
"placeholder_enter_city_text" = "Enter receiver's city";
"city_text" = "City";

4
en.lproj/Localizable.strings

@ -490,3 +490,7 @@
// SendMoney For Reward
"estimated_earning_points_text" = "Estimated earning points";
// Add City Field
"placeholder_enter_city_text" = "Enter receiver's city";
"city_text" = "City";

4
id.lproj/Localizable.strings

@ -481,3 +481,7 @@
// SendMoney For Reward
"estimated_earning_points_text" = "Estimated earning points";
// Add City Field
"placeholder_enter_city_text" = "Enter receiver's city";
"city_text" = "City";

3
km.lproj/Localizable.strings

@ -495,3 +495,6 @@
// SendMoney For Reward
"estimated_earning_points_text" = "Estimated earning points";
// Add City Field
"placeholder_enter_city_text" = "Enter receiver's city";
"city_text" = "City";

3
ko.lproj/Localizable.strings

@ -498,3 +498,6 @@
// SendMoney For Reward
"estimated_earning_points_text" = "적립 예상 포인트";
// Add City Field
"placeholder_enter_city_text" = "Enter receiver's city";
"city_text" = "City";

3
mn.lproj/Localizable.strings

@ -494,3 +494,6 @@
// SendMoney For Reward
"estimated_earning_points_text" = "Estimated earning points";
// Add City Field
"placeholder_enter_city_text" = "Enter receiver's city";
"city_text" = "City";

4
my-MM.lproj/Localizable.strings

@ -468,3 +468,7 @@
// SendMoney For Reward
"estimated_earning_points_text" = "Estimated earning points";
// Add City Field
"placeholder_enter_city_text" = "Enter receiver's city";
"city_text" = "City";

3
my.lproj/Localizable.strings

@ -503,3 +503,6 @@
// SendMoney For Reward
"estimated_earning_points_text" = "Estimated earning points";
// Add City Field
"placeholder_enter_city_text" = "Enter receiver's city";
"city_text" = "City";

3
ne.lproj/Localizable.strings

@ -494,3 +494,6 @@
// SendMoney For Reward
"estimated_earning_points_text" = "Estimated earning points";
// Add City Field
"placeholder_enter_city_text" = "Enter receiver's city";
"city_text" = "City";

4
ru-RU.lproj/Localizable.strings

@ -493,3 +493,7 @@
// SendMoney For Reward
"estimated_earning_points_text" = "Estimated earning points";
// Add City Field
"placeholder_enter_city_text" = "Enter receiver's city";
"city_text" = "City";

3
si.lproj/Localizable.strings

@ -501,3 +501,6 @@
// SendMoney For Reward
"estimated_earning_points_text" = "Estimated earning points";
// Add City Field
"placeholder_enter_city_text" = "Enter receiver's city";
"city_text" = "City";

4
th.lproj/Localizable.strings

@ -499,3 +499,7 @@
// SendMoney For Reward
"estimated_earning_points_text" = "Estimated earning points";
// Add City Field
"placeholder_enter_city_text" = "Enter receiver's city";
"city_text" = "City";

3
uz.lproj/Localizable.strings

@ -497,3 +497,6 @@
// SendMoney For Reward
"estimated_earning_points_text" = "Estimated earning points";
// Add City Field
"placeholder_enter_city_text" = "Enter receiver's city";
"city_text" = "City";

4
vi-VN.lproj/Localizable.strings

@ -492,3 +492,7 @@
// SendMoney For Reward
"estimated_earning_points_text" = "Estimated earning points";
// Add City Field
"placeholder_enter_city_text" = "Enter receiver's city";
"city_text" = "City";
Loading…
Cancel
Save