Browse Source

Merge branch 'developer_Test'

Conflicts:
	GME Remit/Modules/RemittanceModules/OverseasModules/SendMoneyExchangeRate/User Interface/View/SendMoneyExchangeRate.storyboard
pull/1/head
Jeongbae Kong 4 years ago
parent
commit
c784b58127
  1. BIN
      .DS_Store
  2. 4
      GME Remit.xcodeproj/project.pbxproj
  3. 2
      GME Remit/Models/Response/User.swift
  4. 8
      GME Remit/Modules/Home/User Interface/View/Home.storyboard
  5. 2
      GME Remit/Modules/PowerCallModules/LocalTopup/PhoneCardRecharge/User Interface/View/PhoneCardRecharge.storyboard
  6. 2
      GME Remit/Modules/Profile/PersonalInformation/User Interface/View/PersonalInformation.storyboard
  7. 2
      GME Remit/Modules/RemittanceModules/OverseasModules/SendMoneyExchangeRate/User Interface/View/SendMoneyExchangeRate.storyboard
  8. 41
      GME Remit/Modules/RewardModules/CouponBox/Application Logic/Interactor/CouponBoxInteractor.swift
  9. 17
      GME Remit/Modules/RewardModules/CouponBox/Application Logic/Interactor/CouponBoxInteractorIO.swift
  10. 44
      GME Remit/Modules/RewardModules/CouponBox/Application Logic/Model/CouponBoxModel.swift
  11. 30
      GME Remit/Modules/RewardModules/CouponBox/Application Logic/Model/CouponBoxModelContainer.swift
  12. 89
      GME Remit/Modules/RewardModules/CouponBox/Application Logic/Service/CouponBoxService.swift
  13. 16
      GME Remit/Modules/RewardModules/CouponBox/Application Logic/Service/CouponBoxServiceType.swift
  14. 11
      GME Remit/Modules/RewardModules/CouponBox/Module Interface/CouponBoxModuleInterface.swift
  15. 46
      GME Remit/Modules/RewardModules/CouponBox/User Interface/Presenter/CouponBoxPresenter.swift
  16. 53
      GME Remit/Modules/RewardModules/CouponBox/User Interface/View/Cell/CouponBoxTableViewCell.swift
  17. 229
      GME Remit/Modules/RewardModules/CouponBox/User Interface/View/CouponBox.storyboard
  18. 180
      GME Remit/Modules/RewardModules/CouponBox/User Interface/View/CouponBoxViewController.swift
  19. 21
      GME Remit/Modules/RewardModules/CouponBox/User Interface/View/CouponBoxViewInterface.swift
  20. 56
      GME Remit/Modules/RewardModules/CouponBox/User Interface/Wireframe/CouponBoxWireframe.swift
  21. 16
      GME Remit/Modules/RewardModules/CouponBox/User Interface/Wireframe/CouponBoxWireframeInputOutput.swift
  22. 2
      GME Remit/Modules/SideMenu/SideMenu.storyboard
  23. 3
      GME Remit/Modules/SideMenu/SideMenuViewController.swift
  24. 1
      GME Remit/Modules/SplashScreen/User Interface/View/SplashScreenViewController.swift
  25. 27
      GME Remit/MultiLanguages/bn.lproj/Localizable.strings
  26. 28
      GME Remit/MultiLanguages/id.lproj/Localizable.strings
  27. 26
      GME Remit/MultiLanguages/km.lproj/Localizable.strings
  28. 27
      GME Remit/MultiLanguages/mn.lproj/Localizable.strings
  29. 27
      GME Remit/MultiLanguages/my-MM.lproj/Localizable.strings
  30. 27
      GME Remit/MultiLanguages/my.lproj/Localizable.strings
  31. 27
      GME Remit/MultiLanguages/ne.lproj/Localizable.strings
  32. 26
      GME Remit/MultiLanguages/ru-RU.lproj/Localizable.strings
  33. 27
      GME Remit/MultiLanguages/si.lproj/Localizable.strings
  34. 27
      GME Remit/MultiLanguages/th.lproj/Localizable.strings
  35. 27
      GME Remit/MultiLanguages/ur-PK.lproj/Localizable.strings
  36. 27
      GME Remit/MultiLanguages/uz.lproj/Localizable.strings
  37. 27
      GME Remit/MultiLanguages/vi-VN.lproj/Localizable.strings

BIN
.DS_Store

4
GME Remit.xcodeproj/project.pbxproj

@ -17488,7 +17488,7 @@
"$(inherited)",
"$(PROJECT_DIR)/GME\\ Remit/ThirdParty/virtualKeyboard/mtk_module",
);
MARKETING_VERSION = 3.3.3;
MARKETING_VERSION = 3.4.0;
PRODUCT_BUNDLE_IDENTIFIER = com.gme.gmeremit;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
@ -17524,7 +17524,7 @@
"$(inherited)",
"$(PROJECT_DIR)/GME\\ Remit/ThirdParty/virtualKeyboard/mtk_module",
);
MARKETING_VERSION = 3.3.3;
MARKETING_VERSION = 3.4.0;
PRODUCT_BUNDLE_IDENTIFIER = com.gme.gmeremit;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";

2
GME Remit/Models/Response/User.swift

@ -83,7 +83,7 @@ class User: Mappable {
middleName <- map["middleName"]
lastName <- map["lastName"]
nickName <- map["nickName"]
email <- map["email"]
email <- map["customerEmail"]
mobileNumber <- map["mobileNumber"]
rewardPoint <- map["rewardPoint"]
walletNumber <- map["walletNumber"]

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

@ -3,7 +3,7 @@
<device id="retina4_0" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16086"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/>
<capability name="Named colors" minToolsVersion="9.0"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@ -146,16 +146,16 @@
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="9Ft-mi-Ev0">
<rect key="frame" x="5" y="8.5" width="124.5" height="43"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="253" ambiguous="YES" text="Kwangju(034)" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumScaleFactor="0.84999999999999998" translatesAutoresizingMaskIntoConstraints="NO" id="IXG-rj-tyI">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="253" text="Kwangju(034)" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumScaleFactor="0.84999999999999998" translatesAutoresizingMaskIntoConstraints="NO" id="IXG-rj-tyI">
<rect key="frame" x="23" y="0.0" width="79" height="15.5"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="13"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" ambiguous="YES" spacing="2" translatesAutoresizingMaskIntoConstraints="NO" id="jPc-HT-RBJ">
<stackView opaque="NO" contentMode="scaleToFill" spacing="2" translatesAutoresizingMaskIntoConstraints="NO" id="jPc-HT-RBJ">
<rect key="frame" x="46" y="20.5" width="32.5" height="22.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="261" verticalHuggingPriority="251" ambiguous="YES" text="N/A" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="FSQ-xU-CsJ">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="261" verticalHuggingPriority="251" text="N/A" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="FSQ-xU-CsJ">
<rect key="frame" x="0.0" y="0.0" width="32.5" height="22.5"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="19"/>
<color key="textColor" name="ThemeRed"/>

2
GME Remit/Modules/PowerCallModules/LocalTopup/PhoneCardRecharge/User Interface/View/PhoneCardRecharge.storyboard

@ -3,7 +3,7 @@
<device id="retina5_9" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16086"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/>
<capability name="Named colors" minToolsVersion="9.0"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>

2
GME Remit/Modules/Profile/PersonalInformation/User Interface/View/PersonalInformation.storyboard

@ -3,7 +3,7 @@
<device id="retina4_7" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16086"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/>
<capability name="Named colors" minToolsVersion="9.0"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>

2
GME Remit/Modules/RemittanceModules/OverseasModules/SendMoneyExchangeRate/User Interface/View/SendMoneyExchangeRate.storyboard

@ -585,6 +585,7 @@
<point key="canvasLocation" x="285.60000000000002" y="89.505247376311857"/>
</scene>
</scenes>
<color key="tintColor" red="0.78177064659999995" green="0.55228364470000002" blue="0.018981300289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<resources>
<image name="Korea" width="40" height="40"/>
<image name="ic_dropdownSmall" width="6" height="3"/>
@ -598,5 +599,4 @@
<color red="0.28999999165534973" green="0.28999999165534973" blue="0.28999999165534973" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
</resources>
<color key="tintColor" red="0.78177064659999995" green="0.55228364470000002" blue="0.018981300289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</document>

41
GME Remit/Modules/RewardModules/CouponBox/Application Logic/Interactor/CouponBoxInteractor.swift

@ -0,0 +1,41 @@
//
// CouponBoxInteractor.swift
// GME Remit
//
// Created by Jeongbae Kong on 03/12/2019.
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
import Foundation
class CouponBoxInteractor {
// MARK: Properties
weak var output: CouponBoxInteractorOutput?
private let service: CouponBoxServiceType
// MARK: Initialization
init(service: CouponBoxServiceType) {
self.service = service
}
}
// MARK: CouponBox interactor input interface
extension CouponBoxInteractor: CouponBoxInteractorInput {
func fetchCouponBox() {
service.fetchCouponBox(
success: {
self.output?.setModel(with: $0)
},
failure: {[weak self] in
guard let `self` = self else {
return
}
self.output?.setError(with: $0)
}
)
}
}

17
GME Remit/Modules/RewardModules/CouponBox/Application Logic/Interactor/CouponBoxInteractorIO.swift

@ -0,0 +1,17 @@
//
// CouponBoxInteractorIO.swift
// GME Remit
//
// Created by Jeongbae Kong on 03/12/2019.
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
protocol CouponBoxInteractorInput: class {
/// Fetch coupon using fetchCouponBox
func fetchCouponBox()
}
protocol CouponBoxInteractorOutput: class {
func setModel(with model: [CouponBoxModel]?)
func setError(with error:Error)
}

44
GME Remit/Modules/RewardModules/CouponBox/Application Logic/Model/CouponBoxModel.swift

@ -0,0 +1,44 @@
//
// CouponBoxModel.swift
// GME Remit
//
// Created by Jeongbae Kong on 04/12/2019.
// Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
import Foundation
import ObjectMapper
struct CouponBoxModel: Mappable {
var schemeId: String?
var couponType: String?
var couponName: String?
var discountType: String?
var discountValue: String?
var expireDate: String?
var buyDate: String?
init?(map: Map) { }
mutating func mapping(map: Map) {
schemeId <- map["schemeId"]
couponType <- map["couponType"]
couponName <- map["couponName"]
discountType <- map["discountType"]
discountValue <- map["discountValue"]
expireDate <- map["expireDate"]
buyDate <- map["buyDate"]
}
}
extension CouponBoxModel: Equatable {
static func == (lhs: CouponBoxModel, rhs: CouponBoxModel) -> Bool {
return lhs.schemeId == rhs.schemeId &&
lhs.couponType == rhs.couponType &&
lhs.couponName == rhs.couponName &&
lhs.discountType == rhs.discountType &&
lhs.discountValue == rhs.discountValue &&
lhs.expireDate == rhs.expireDate &&
lhs.buyDate == rhs.buyDate
}
}

30
GME Remit/Modules/RewardModules/CouponBox/Application Logic/Model/CouponBoxModelContainer.swift

@ -0,0 +1,30 @@
//
// CouponBoxModelContainer.swift
// GME Remit
//
// Created by Jeongbae Kong on 04/12/2019.
// Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
import Foundation
import ObjectMapper
struct CouponBoxModelContainer: Mappable {
var errorCode: String?
var message: String?
var id: String?
var extra: String?
var extra2: String?
var data: [CouponBoxModel]?
init?(map: Map) { }
mutating func mapping(map: Map) {
errorCode <- map["ErrorCode"]
message <- map["Msg"]
id <- map["Id"]
extra <- map["Extra"]
extra2 <- map["Extra2"]
data <- map["Data"]
}
}

89
GME Remit/Modules/RewardModules/CouponBox/Application Logic/Service/CouponBoxService.swift

@ -0,0 +1,89 @@
//
// CouponBoxService.swift
// GME Remit
//
// Created by Jeongbae Kong on 03/12/2019.
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
import Foundation
class CouponBoxService: CouponBoxServiceType {
func fetchCouponBox(
success: @escaping (([CouponBoxModel]?) -> Void),
failure: @escaping ((Error) -> Void)
) {
guard let customerId = GMEDB.shared.user.string(.senderId) else {
let error = NSError.init(
domain: "Network",
code: 0,
userInfo: [NSLocalizedDescriptionKey : "no exist senderId"])
failure(error)
return
}
// let testString =
// """
// {
// "ErrorCode": "0",
// "Msg": "SUCCESS",
// "Id": "",
// "Extra": "",
// "Extra2": "",
// "Data": [
// {
// "schemeId": "10",
// "couponType": "1",
// "couponName": "100% coupon",
// "discountType": "1",
// "discountValue": "100.0000",
// "expireDate": "2020-06-28 5:39:12",
// "buyDate": "2019-06-28 5:51:53"
// },
// {
// "schemeId": "12",
// "couponType": "2",
// "couponName": "5000 Won Discount Coupon",
// "discountType": "",
// "discountValue": "5000",
// "expireDate": "2020-06-28 5:39:12",
// "buyDate": "2019-06-28 5:51:53"
// }
// ]
// }
// """
// let json = ResponseContainerArray<CouponBoxModel>(JSONString: testString)
// success(json?.data)
let parameter = [
"customerId": customerId
]
let url = baseUrlWithoutVersion + "v1/mobile/GetCouponList"
auth.request(
method: .post,
url: url,
params: parameter,
success: { (response: CouponBoxModelContainer) in
if (response.errorCode ?? "") == "1" {
let error = NSError.init(
domain: "Network",
code: 0,
userInfo: [NSLocalizedDescriptionKey :
response.message ?? ""])
failure(error)
} else {
let model = response.data
success(model)
}
},
failure: { failure($0) }
)
}
}

16
GME Remit/Modules/RewardModules/CouponBox/Application Logic/Service/CouponBoxServiceType.swift

@ -0,0 +1,16 @@
//
// CouponBoxServiceType.swift
// GME Remit
//
// Created by Jeongbae Kong on 03/12/2019.
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
protocol CouponBoxServiceType: class, ApiServiceType {
/// Fetch coupon order history
func fetchCouponBox(
success: @escaping (([CouponBoxModel]?) -> Void),
failure: @escaping ((Error) -> Void)
)
}

11
GME Remit/Modules/RewardModules/CouponBox/Module Interface/CouponBoxModuleInterface.swift

@ -0,0 +1,11 @@
//
// CouponBoxModuleInterface.swift
// GME Remit
//
// Created by Jeongbae Kong on 03/12/2019.
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
protocol CouponBoxModuleInterface: class {
func fetchCouponBox()
}

46
GME Remit/Modules/RewardModules/CouponBox/User Interface/Presenter/CouponBoxPresenter.swift

@ -0,0 +1,46 @@
//
// CouponBoxPresenter.swift
// GME Remit
//
// Created by Jeongbae Kong on 03/12/2019.
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
import Foundation
class CouponBoxPresenter {
// MARK: Properties
weak var view: CouponBoxViewInterface?
var interactor: CouponBoxInteractorInput?
var wireframe: CouponBoxWireframeInput?
}
// MARK: CouponBox module interface
extension CouponBoxPresenter: CouponBoxModuleInterface {
func fetchCouponBox() {
view?.startLoading()
interactor?.fetchCouponBox()
}
}
// MARK: CouponBox interactor output interface
extension CouponBoxPresenter: CouponBoxInteractorOutput {
func setModel(with model: [CouponBoxModel]?) {
view?.endLoading()
view?.setModel(with: model)
}
func setError(with error: Error) {
view?.endLoading()
view?.setError(with: error)
}
}
extension CouponBoxPresenter: CouponBoxWireframeOutput {
}

53
GME Remit/Modules/RewardModules/CouponBox/User Interface/View/Cell/CouponBoxTableViewCell.swift

@ -0,0 +1,53 @@
//
// CouponBoxTableViewCell.swift
// GME Remit
//
// Created by Jeongbae Kong on 03/12/2019.
// Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
import UIKit
class CouponBoxTableViewCell: UITableViewCell {
@IBOutlet weak var couponNameLabel: UILabel!
@IBOutlet weak var couponExpiryStartDateLabel: UILabel!
@IBOutlet weak var couponExpiryEndDateLabel: UILabel!
@IBOutlet weak var discountValueLabel: UILabel!
@IBOutlet weak var cellContentView: UIView!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
func couponBoxModel(with model: CouponBoxModel?) {
guard let model = model else { return }
cellContentView.layer.borderWidth = 1
cellContentView.layer.borderColor = UIColor.gray.cgColor
cellContentView.layer.cornerRadius = 5
couponNameLabel.font = UIFont.sanfrancisco(.medium, size: 17)
couponNameLabel.text = model.couponName
couponExpiryStartDateLabel.font = UIFont.sanfrancisco(.medium, size: 17)
couponExpiryStartDateLabel.text = model.buyDate
couponExpiryEndDateLabel.font = UIFont.sanfrancisco(.medium, size: 17)
couponExpiryEndDateLabel.text = model.expireDate
discountValueLabel.font = UIFont.sanfrancisco(.medium, size: 17)
if model.discountType == "1" {
discountValueLabel.text = "\(model.discountValue ?? "")%"
} else {
discountValueLabel.text = "\(model.discountValue ?? "")KRW"
}
}
}

229
GME Remit/Modules/RewardModules/CouponBox/User Interface/View/CouponBox.storyboard

@ -0,0 +1,229 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15705" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="HSb-ou-7T5">
<device id="retina5_5" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15706"/>
<capability name="Named colors" minToolsVersion="9.0"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<customFonts key="customFonts">
<array key="SanFranciscoDisplay-Medium.otf">
<string>SanFranciscoDisplay-Medium</string>
</array>
<array key="SanFranciscoDisplay-Regular.otf">
<string>SanFranciscoDisplay-Regular</string>
</array>
</customFonts>
<scenes>
<!--CouponBox-->
<scene sceneID="R60-Pu-Hpy">
<objects>
<viewController storyboardIdentifier="CouponBoxViewController" title="CouponBox" id="HSb-ou-7T5" customClass="CouponBoxViewController" customModule="GME_Remit" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="9Uc-9s-KgO">
<rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" allowsSelection="NO" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="ezy-zE-5Tn">
<rect key="frame" x="10" y="84" width="394" height="642"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="sectionIndexBackgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<view key="tableHeaderView" contentMode="scaleToFill" id="usQ-1d-CTS">
<rect key="frame" x="0.0" y="0.0" width="394" height="1"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" name="ThemeSeparate"/>
</view>
<view key="tableFooterView" contentMode="scaleToFill" id="ypK-Om-Vgj">
<rect key="frame" x="0.0" y="177" width="394" height="44"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="There are no coupons" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hfr-ee-qjq">
<rect key="frame" x="114" y="12" width="166" height="20"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="17"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="hfr-ee-qjq" firstAttribute="centerX" secondItem="ypK-Om-Vgj" secondAttribute="centerX" id="761-La-11E"/>
<constraint firstItem="hfr-ee-qjq" firstAttribute="centerY" secondItem="ypK-Om-Vgj" secondAttribute="centerY" id="Z52-4e-eSq"/>
</constraints>
</view>
<prototypes>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="CouponCell" rowHeight="120" id="J7s-TN-7il" customClass="CouponCell" customModule="GME_Remit" customModuleProvider="target">
<rect key="frame" x="0.0" y="29" width="394" height="120"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="J7s-TN-7il" id="iVw-0N-Jmx">
<rect key="frame" x="0.0" y="0.0" width="394" height="120"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<view opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="r8r-7g-2zz">
<rect key="frame" x="5" y="5" width="384" height="110"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" distribution="fillEqually" alignment="top" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="rlQ-VP-lmr">
<rect key="frame" x="20" y="10" width="287.66666666666669" height="90"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="bWL-jL-jgo">
<rect key="frame" x="0.0" y="0.0" width="63.333333333333336" height="23.333333333333332"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="BITRHDAY" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0fN-Cu-zf1">
<rect key="frame" x="0.0" y="0.0" width="63.333333333333336" height="23.333333333333332"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="13"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" spacing="4" translatesAutoresizingMaskIntoConstraints="NO" id="Mvh-Fv-WQg">
<rect key="frame" x="0.0" y="33.333333333333336" width="213.66666666666666" height="23.333333333333336"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="252" verticalHuggingPriority="251" text="SERVICE DISCOUNT" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="M2u-YV-fRK">
<rect key="frame" x="0.0" y="0.0" width="162" height="23.333333333333332"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="17"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="(20%)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="u9h-2K-juJ">
<rect key="frame" x="166" y="0.0" width="47.666666666666657" height="23.333333333333332"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="18"/>
<color key="textColor" name="ThemeRed"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
<stackView opaque="NO" contentMode="scaleToFill" spacing="13" translatesAutoresizingMaskIntoConstraints="NO" id="Lbv-w4-9FN">
<rect key="frame" x="0.0" y="66.666666666666671" width="184" height="23.333333333333329"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="(2018-05-05)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uzc-AR-517">
<rect key="frame" x="0.0" y="0.0" width="75" height="23.333333333333332"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="13"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="~" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EV1-AV-ghr">
<rect key="frame" x="88" y="0.0" width="8" height="23.333333333333332"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="13"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="(2019-05-05)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hmE-gu-16z">
<rect key="frame" x="109" y="0.0" width="75" height="23.333333333333332"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="13"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
</subviews>
</stackView>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="right" translatesAutoresizingMaskIntoConstraints="NO" id="Q7E-3R-YGd">
<rect key="frame" x="349" y="47.666666666666664" width="15" height="15"/>
<constraints>
<constraint firstAttribute="width" constant="15" id="PoU-i8-MOt"/>
<constraint firstAttribute="height" constant="15" id="rKY-fM-WO4"/>
</constraints>
</imageView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="rlQ-VP-lmr" firstAttribute="leading" secondItem="r8r-7g-2zz" secondAttribute="leading" constant="20" id="06D-WH-oMN"/>
<constraint firstAttribute="trailing" secondItem="Q7E-3R-YGd" secondAttribute="trailing" constant="20" id="5nc-n3-qje"/>
<constraint firstItem="Q7E-3R-YGd" firstAttribute="leading" secondItem="rlQ-VP-lmr" secondAttribute="trailing" constant="41.5" id="RBd-s8-VRG"/>
<constraint firstAttribute="bottom" secondItem="rlQ-VP-lmr" secondAttribute="bottom" constant="10" id="SlU-UU-j6A"/>
<constraint firstItem="rlQ-VP-lmr" firstAttribute="top" secondItem="r8r-7g-2zz" secondAttribute="top" constant="10" id="cUE-4j-Qqs"/>
<constraint firstItem="Q7E-3R-YGd" firstAttribute="centerY" secondItem="r8r-7g-2zz" secondAttribute="centerY" id="tLc-eS-GR5"/>
</constraints>
</view>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="r8r-7g-2zz" firstAttribute="leading" secondItem="iVw-0N-Jmx" secondAttribute="leading" constant="5" id="1dW-Ze-KDF"/>
<constraint firstItem="r8r-7g-2zz" firstAttribute="top" secondItem="iVw-0N-Jmx" secondAttribute="top" constant="5" id="bY5-ve-1KQ"/>
<constraint firstAttribute="bottom" secondItem="r8r-7g-2zz" secondAttribute="bottom" constant="5" id="cCH-fC-86m"/>
<constraint firstAttribute="trailing" secondItem="r8r-7g-2zz" secondAttribute="trailing" constant="5" id="cu8-qr-apg"/>
</constraints>
</tableViewCellContentView>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<connections>
<outlet property="checkImageView" destination="Q7E-3R-YGd" id="tGN-ln-4I9"/>
<outlet property="couponCellBackgroundView" destination="r8r-7g-2zz" id="PD9-kR-kL1"/>
<outlet property="couponNameLabel" destination="0fN-Cu-zf1" id="0Wt-6S-ldx"/>
<outlet property="discountLabel" destination="u9h-2K-juJ" id="dCc-ze-qWC"/>
<outlet property="expireDateLabel" destination="hmE-gu-16z" id="fLS-kM-Tbt"/>
<outlet property="startDateLabel" destination="uzc-AR-517" id="6Mi-TW-QP4"/>
</connections>
</tableViewCell>
</prototypes>
</tableView>
<stackView opaque="NO" contentMode="scaleToFill" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="DeL-q7-24F">
<rect key="frame" x="16.000000000000007" y="10" width="113.66666666666669" height="64"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="couponImage" translatesAutoresizingMaskIntoConstraints="NO" id="UmJ-8h-GhH">
<rect key="frame" x="0.0" y="0.0" width="64" height="64"/>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="CDB-as-6GK">
<rect key="frame" x="72" y="0.0" width="41.666666666666657" height="64"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" name="ThemeText"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</stackView>
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="TNH-We-CX0">
<rect key="frame" x="215" y="10" width="183" height="30"/>
<state key="normal" title="sdfgsdfgsdfgsdfgsdfgsdfg">
<color key="titleColor" name="ThemeRed"/>
</state>
<connections>
<action selector="couponGuidelineButton:" destination="HSb-ou-7T5" eventType="touchUpInside" id="S7x-Uz-0me"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" name="ThemeMainBackground"/>
<constraints>
<constraint firstItem="TNH-We-CX0" firstAttribute="top" secondItem="O1T-1R-Sun" secondAttribute="top" constant="10" id="08v-rM-6Kt"/>
<constraint firstItem="DeL-q7-24F" firstAttribute="top" secondItem="O1T-1R-Sun" secondAttribute="top" constant="10" id="2UI-AI-6en"/>
<constraint firstItem="ezy-zE-5Tn" firstAttribute="leading" secondItem="O1T-1R-Sun" secondAttribute="leading" constant="10" id="6w8-5P-6N7"/>
<constraint firstAttribute="bottom" secondItem="ezy-zE-5Tn" secondAttribute="bottom" constant="10" id="8qk-86-TUV"/>
<constraint firstItem="O1T-1R-Sun" firstAttribute="trailing" secondItem="TNH-We-CX0" secondAttribute="trailing" constant="16" id="Ldu-dz-CzH"/>
<constraint firstItem="O1T-1R-Sun" firstAttribute="trailing" secondItem="ezy-zE-5Tn" secondAttribute="trailing" constant="10" id="UHq-lo-4Ls"/>
<constraint firstItem="TNH-We-CX0" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="DeL-q7-24F" secondAttribute="trailing" constant="10" id="Uem-MN-t6j"/>
<constraint firstItem="DeL-q7-24F" firstAttribute="leading" secondItem="O1T-1R-Sun" secondAttribute="leading" constant="16" id="Yl6-Iq-kPc"/>
<constraint firstItem="ezy-zE-5Tn" firstAttribute="top" secondItem="DeL-q7-24F" secondAttribute="bottom" constant="10" id="jK4-NE-dqh"/>
</constraints>
<viewLayoutGuide key="safeArea" id="O1T-1R-Sun"/>
</view>
<connections>
<outlet property="couponCount" destination="CDB-as-6GK" id="ah6-bh-HOg"/>
<outlet property="couponCountStackView" destination="DeL-q7-24F" id="Du7-qv-GxA"/>
<outlet property="couponGuidelineText" destination="TNH-We-CX0" id="WCf-Y4-fjS"/>
<outlet property="noCouponMessageLabel" destination="hfr-ee-qjq" id="Q4v-ZY-ncW"/>
<outlet property="noCouponView" destination="ypK-Om-Vgj" id="JIk-VJ-aNb"/>
<outlet property="tableView" destination="ezy-zE-5Tn" id="DT4-kB-AtU"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="8je-5K-XuW" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-93.75" y="231.33802816901408"/>
</scene>
</scenes>
<resources>
<image name="couponImage" width="32" height="32"/>
<image name="right" width="22" height="22"/>
<namedColor name="ThemeMainBackground">
<color red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
<namedColor name="ThemeRed">
<color red="0.92941176470588238" green="0.10588235294117647" blue="0.14117647058823529" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
<namedColor name="ThemeSeparate">
<color red="0.82400000095367432" green="0.82400000095367432" blue="0.82400000095367432" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
<namedColor name="ThemeText">
<color red="0.28999999165534973" green="0.28999999165534973" blue="0.28999999165534973" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</namedColor>
</resources>
<color key="tintColor" red="0.78177064659999995" green="0.55228364470000002" blue="0.018981300289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</document>

180
GME Remit/Modules/RewardModules/CouponBox/User Interface/View/CouponBoxViewController.swift

@ -0,0 +1,180 @@
//
// CouponBoxViewController.swift
// GME Remit
//
// Created by Jeongbae Kong on 03/12/2019.
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
import UIKit
import XLPagerTabStrip
protocol CouponBoxDelegate: class {
func couponBoxView(
_ viewController: CouponBoxViewController,
didSelectModel model: CouponBoxModel?
)
}
class CouponBoxViewController: UIViewController {
// MARK: Properties
weak var delegate: CouponBoxDelegate?
private var couponList: [CouponBoxModel]? {
didSet {
let message = "possessed_coupon_number_text".localized().replacingOccurrences(
of: "xxx", with: "\(couponList?.count ?? 0)")
couponCount.text = message
couponCount.font = .sanfrancisco(.regular, size: 13)
if couponList?.count != 0 { // ,
noCouponView.isHidden = true
} else {
noCouponView.isHidden = false
}
tableView.reloadData()
}
}
var presenter: CouponBoxModuleInterface?
private lazy var refreshControl = UIRefreshControl()
// MARK: Computed Properties
// MARK: IBOutlets
@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var noCouponView: UIView!
@IBOutlet weak var couponCount: UILabel!
@IBOutlet weak var couponGuidelineText: UIButton!
@IBOutlet weak var couponCountStackView: UIStackView!
@IBOutlet weak var noCouponMessageLabel: UILabel!
// MARK: VC's Life cycle
override func viewDidLoad() {
super.viewDidLoad()
setup()
setUI()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
presenter?.fetchCouponBox()
}
// MARK: IBActions
@IBAction func couponGuidelineButton(_ sender: UIButton) {
// presenter?.goCouponGuideline()
}
}
// MARK: CouponBoxViewInterface
extension CouponBoxViewController: CouponBoxViewInterface {
func setModel(with model: [CouponBoxModel]?) {
couponList = model
}
func setError(with error: Error) {
alert(message: error.localizedDescription)
}
func startLoading() {
showProgressHud()
}
func endLoading() {
hideProgressHud()
}
}
// MARK: Other Functions
extension CouponBoxViewController {
private func setup() {
initDelegate()
addRefreshControlCollectionView()
noCouponMessageLabel.text = "no_coupon_text".localized()
// all setup should be done here
}
private func initDelegate() {
tableView.dataSource = self
tableView.delegate = self
}
private func setUI() {
couponGuidelineText.setTitle("coupon_guideline_title_text".localized(), for: .normal)
couponGuidelineText.titleLabel?.font = .sanfrancisco(.regular, size: 13)
couponGuidelineText.backgroundColor = .clear
couponCountStackView.backgroundColor = .clear
}
private func addRefreshControlCollectionView() {
let colorOption = [NSAttributedString.Key.foregroundColor : UIColor.themeWhite]
let title = NSAttributedString(string: "pull to refresh", attributes: colorOption)
refreshControl.attributedTitle = title
refreshControl.backgroundColor = .themeBlue
refreshControl.tintColor = .themeWhite
refreshControl.addTarget(self, action: #selector(refresh), for: .valueChanged)
if #available(iOS 10.0, *) {
tableView.refreshControl = refreshControl
} else {
tableView.addSubview(refreshControl)
}
}
@objc
private func refresh() {
self.presenter?.fetchCouponBox()
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {[weak self] in
self?.tableView.refreshControl?.endRefreshing()
}
}
}
// MARK: - XLPagerTabStrip'`s IndicatorInfoProvider
extension CouponBoxViewController: IndicatorInfoProvider {
func indicatorInfo(for pagerTabStripController: PagerTabStripViewController) -> IndicatorInfo {
return IndicatorInfo.init(title: "couponbox_title_text".localized())
}
}
// MARK: - UITableViewDataSource
extension CouponBoxViewController: UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return couponList?.count ?? 0
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "CouponCell") as? CouponCell else {
return CouponBoxTableViewCell()
}
cell.setModel(couponList?[indexPath.row])
return cell
}
}
extension CouponBoxViewController: UITableViewDelegate {
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let result = UIView()
// recreate insets from existing ones in the table view
let insets = tableView.separatorInset
let width = tableView.bounds.width - insets.left - insets.right
let sepFrame = CGRect(x: insets.left, y: -0.5, width: width, height: 0.5)
// create layer with separator, setting color
let sep = CALayer()
sep.frame = sepFrame
sep.backgroundColor = tableView.separatorColor?.cgColor
result.layer.addSublayer(sep)
return result
}
}

21
GME Remit/Modules/RewardModules/CouponBox/User Interface/View/CouponBoxViewInterface.swift

@ -0,0 +1,21 @@
//
// CouponBoxViewInterface.swift
// GME Remit
//
// Created by Jeongbae Kong on 03/12/2019.
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
protocol CouponBoxViewInterface: class {
/// present activity indicator for something process
func startLoading()
/// dismiss activity indicator for something process
func endLoading()
///set Model
func setModel(with model: [CouponBoxModel]?)
///set Error
func setError(with error: Error)
}

56
GME Remit/Modules/RewardModules/CouponBox/User Interface/Wireframe/CouponBoxWireframe.swift

@ -0,0 +1,56 @@
//
// CouponBoxWireframe.swift
// GME Remit
//
// Created by Jeongbae Kong on 03/12/2019.
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
import UIKit
class CouponBoxWireframe {
weak var view: UIViewController!
weak var output: CouponBoxWireframeOutput?
private var model: [CouponBoxModel]?
private weak var delegate: CouponBoxDelegate?
}
extension CouponBoxWireframe: CouponBoxWireframeInput {
var storyboardName: String {return "CouponBox"}
func getMainView() -> UIViewController {
let service = CouponBoxService()
let interactor = CouponBoxInteractor(service: service)
// , model: model)
let presenter = CouponBoxPresenter()
let viewController = viewControllerFromStoryboard(of: CouponBoxViewController.self)
output = presenter
viewController.presenter = presenter
viewController.delegate = delegate
interactor.output = presenter
presenter.interactor = interactor
presenter.wireframe = self
presenter.view = viewController
view = viewController
return viewController
}
func openWith(
delegate: CouponBoxDelegate?,
model: [CouponBoxModel]?,
source: UIViewController
) {
self.delegate = delegate
self.model = model
let vc = getMainView()
source.present(vc, animated: true, completion: nil)
}
}

16
GME Remit/Modules/RewardModules/CouponBox/User Interface/Wireframe/CouponBoxWireframeInputOutput.swift

@ -0,0 +1,16 @@
//
// CouponBoxWireframeInputOutput.swift
// GME Remit
//
// Created by Jeongbae Kong on 03/12/2019.
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
//
import Foundation
protocol CouponBoxWireframeInput: WireframeInput {
}
protocol CouponBoxWireframeOutput: class {
}

2
GME Remit/Modules/SideMenu/SideMenu.storyboard

@ -3,7 +3,7 @@
<device id="retina5_5" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16086"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/>
<capability name="Named colors" minToolsVersion="9.0"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>

3
GME Remit/Modules/SideMenu/SideMenuViewController.swift

@ -243,6 +243,9 @@ class SideMenuViewController: UIViewController {
GMEDB.shared.user.rx.string(key: .email).bind(to: labelEmail.rx.text)
.disposed(by: disposeBag)
let test = GMEDB.shared.user.rx.string(key: .email)
print("TEST IS POSSIBLE \(test)")
//NAME
GMEDB.shared.user.rx.string(key: .firstName).map {$0?.capitalized}.bind(to: labelProfileName.rx.text)
.disposed(by: disposeBag)

1
GME Remit/Modules/SplashScreen/User Interface/View/SplashScreenViewController.swift

@ -51,7 +51,6 @@ class SplashScreenViewController: UIViewController {
@IBOutlet private weak var logoImageView: UIImageView!
@IBOutlet weak var oneUnitExchangeRateView: UIView!
// MARK: Properties
var presenter: SplashScreenModuleInterface?

27
GME Remit/MultiLanguages/bn.lproj/Localizable.strings

@ -759,3 +759,30 @@
"gps_off_text" = "জিপিএস চালু নেই।";
"grant_permission_text" = "প্রয়োজনীয় অনুমতি প্রদান করুন";
"location_not_available" = "এই মুহুর্তে অবস্থান নির্ণয় করা যাচ্ছে না। পরে আবার চেষ্টা করুন।";
//Change Profile
"change_personal_information_title_text" = "ব্যক্তিগত তথ্য";
"name_title_text" = "নাম";
"nationality_title_text" = "জাতীয়তা";
"birthday_title_text" = "জান্মতারিখ";
"phonenumber_title_text" = "ফোন নাম্বার";
"email_title_text" = "ইমেইল";
"password_title_text" = "পাসওয়ার্ড";
"change_to_new_password_text" = "পাসওয়ার্ড পরিবর্তন করতে ক্লিক করুণ";
"change_your_phonenumber_title_text" = "ফোন নাম্বার পরিবর্তন করুণ";
"change_your_phonenumber_instruction_text" = "ফোন নাম্বার পরিবর্তন করতে নিচের খালি ঘর পুরণ করুণ ";
"new_phonenumber_text" = "নতুন ফোন নাম্বার";
"enter_your_new_phonenumber_text" = "নতুন ফোন নাম্বার প্রবেশ করান";
"save_title_text" = " সেভ";
"change_your_email_title_text" = "ইমেইল পরিবর্তন করুণ";
"change_your_email_instruction_text" = "ইমেইল পরিবর্তন করতে নিচের ঘর পুরণ করুণ";
"new_email_text" = "নতুন ইমেইল";
"enter_your_new_email_text" = "নতুন ইমেইল প্রবেশ করান";
"successfully_verified_password_title_text" = "পাসওয়ার্ড সফলভাবে ভেরিফাই হয়েছে";
"will_proceed_to_check_otp_title_text" = "OTP চেক করতে প্রক্রিয়াকরণ হবে";
"cannot_verify_password_title_text" = "পাসওয়ার্ড ভেরিফাই সম্ভব নয়";
"new_otp_number_has_sent_text" = "নতুন OTP আবার পাঠানো হয়েছে";
"type_4_digit_OTP_number_text" = "৪ সংখ্যার OTP টাইপ করুণ";
"verification_completed_title_text" = "ভেরিফিকেশন সম্পন্ন হয়েছে";
"will_change_your_personal_information_title_text" = "ব্যক্তিগত তথ্য পরিবর্তন হবে";

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

@ -769,3 +769,31 @@
"gps_off_text" = "GPS tidak dihidupkan";
"grant_permission_text" = "Harap berikan izin yang diperlukan";
"location_not_available" = "Tidak dapat mengambil lokasi saat ini. Coba lagi nanti.";
//Change Profile
"change_personal_information_title_text" = "Informasi Pribadi";
"name_title_text" = "Nama";
"nationality_title_text" = "Kewarganegaraan";
"birthday_title_text" = "Tanggal Lahir";
"phonenumber_title_text" = "No. HP";
"email_title_text" = "Email";
"password_title_text" = "Kata Sandi";
"change_to_new_password_text" = "Klik untuk ubah kata sandi";
"change_your_phonenumber_title_text" = "Ubah No. HP";
"change_your_phonenumber_instruction_text" = "Untuk mengubah nomor telepon Anda, isi bagian yang kosong di bawah ini";
"new_phonenumber_text" = "No. HP terbaru";
"enter_your_new_phonenumber_text" = "Masukan no. HP baru Anda";
"save_title_text" = "Simpan";
"change_your_email_title_text" = "Ubah alamat email";
"change_your_email_instruction_text" = "Untuk mengubah alaamt email Anda, isi bagian yang kosong di bawah ini";
"new_email_text" = "Email terbaru";
"enter_your_new_email_text" = "Masukan alamat email baru Anda";
"successfully_verified_password_title_text" = "Kata sandi berhasil diverifikasi";
"will_proceed_to_check_otp_title_text" = "Memproses untuk cek OTP";
"cannot_verify_password_title_text" = "Kata sandi tidak dapat diverifikasi";
"new_otp_number_has_sent_text" = "Nomor OTP baru telah dikirim ulang";
"type_4_digit_OTP_number_text" = "Masukan 4-digit nomor OTP";
"verification_completed_title_text" = "Verifikasi berhasil";
"will_change_your_personal_information_title_text" = "Informasi pribadi telah diperbarui";

26
GME Remit/MultiLanguages/km.lproj/Localizable.strings

@ -772,3 +772,29 @@
"grant_permission_text" = "សូមផ្តល់ការអនុញ្ញាត្តិ";
"location_not_available" = "ទីតាំងរបស់បងប្អូនមិនអាចកំណត់បានទេ។ ព្យាយាម​ម្តង​ទៀត​នៅ​ពេលក្រោយ។";
//Change Profile
"change_personal_information_title_text" = "ព័ត៍មានផ្ទាល់ខ្លួន";
"name_title_text" = "ឈ្មោះ";
"nationality_title_text" = "សញ្ជាតិ";
"birthday_title_text" = "ថ្ងៃកំណើត";
"phonenumber_title_text" = "លេខទូរស័ព្ទ";
"email_title_text" = "អ៊ីម៉ែល";
"password_title_text" = "ពាក្យសម្ងាត់";
"change_to_new_password_text" = "ចុចដើម្បីផ្លាស់ប្តូរលេខសម្ងាត់";
"change_your_phonenumber_title_text" = "ប្កូរលេខទូរស័ព្ទរបស់អ្នក";
"change_your_phonenumber_instruction_text" = "សូមបំពេញចន្លោះខាងក្រោមដើម្បីផ្លាស់ប្តូរលេខទូរស័ព្ទ";
"new_phonenumber_text" = "លេខទូរស័ព្ទថ្មី";
"enter_your_new_phonenumber_text" = "បញ្ចូលលេខទូរស័ព្ទថ្មីរបស់អ្នក";
"save_title_text" = "រក្សាទុក";
"change_your_email_title_text" = "ផ្លាស់ប្តូរអ៊ីម៉ែល";
"change_your_email_instruction_text" = "សូមបំពេញចន្លោះខាងក្រោមដើម្បីផ្លាស់ប្តូរអ៊ីម៉ែល";
"new_email_text" = "អ៊ី​ម៉ែ​ល​ថ្មី";
"enter_your_new_email_text" = "សូមបញ្ចូលអ៊ីម៉ែលថ្មី";
"successfully_verified_password_title_text" = "ពាក្យសម្ងាត់ផ្ទៀងផ្ទាត់បានជោគជ័យ";
"will_proceed_to_check_otp_title_text" = "សូមពិនិត្យមើលលេខកូដOTPដើម្បីបន្តដំណើរការ";
"cannot_verify_password_title_text" = "ពាក្យសម្ងាត់មិនត្រឹមត្រូវ";
"new_otp_number_has_sent_text" = "លេខកូដOTPថ្មីត្រូវបានផ្ញើ";
"type_4_digit_OTP_number_text" = "សូមបំពេញលេខកូដ OTP 4ខ្ទង់ ";
"verification_completed_title_text" = "ការផ្ទៀងផ្ទាត់ទាំងអស់ត្រូវបានរួចរាល់";
"will_change_your_personal_information_title_text" = "ព័ត៌មានផ្ទាល់ខ្លួនរបស់អ្នកនឹងផ្លាស់ប្តូរ";

27
GME Remit/MultiLanguages/mn.lproj/Localizable.strings

@ -768,3 +768,30 @@
"gps_off_text" = "GPS-ийг асаана уу.";
"grant_permission_text" = "Өгөгдсөн нөхцлүүдийг зөвшөөрнө үү.";
"location_not_available" = "Байрлал тогтоох боломжгүй. Түр хугацааны дараа дахин үзнэ үү.";
//Change Profile
"change_personal_information_title_text" = "Хувийн мэдээлэл";
"name_title_text" = "Нэр";
"nationality_title_text" = "Төрсөн улс";
"birthday_title_text" = "Төрсөн өдөр";
"phonenumber_title_text" = "Утасны дугаар";
"email_title_text" = "Имэйл хаяг";
"password_title_text" = "Нууц үг";
"change_to_new_password_text" = "Нууц үг солих";
"change_your_phonenumber_title_text" = "Утасны дугаараа солих";
"change_your_phonenumber_instruction_text" = "Утасны дугаараа солих бол доорхи мөрөнд бичиж оруулна уу.";
"new_phonenumber_text" = "Шинэ утасны дугаар";
"enter_your_new_phonenumber_text" = "Шинэ утасны дугаараа бичиж оруулна уу.";
"save_title_text" = "Хадгалах";
"change_your_email_title_text" = "Имэйл хаягаа солих";
"change_your_email_instruction_text" = "Имэйл хаягаа солих бол доорхи мөрөнд бичиж оруулна уу.";
"new_email_text" = "Шинэ имэйл хаяг";
"enter_your_new_email_text" = "Шинэ имэйл хаягаа бичиж оруулна уу";
"successfully_verified_password_title_text" = "Нууц үг амжилттай танигдлаа";
"will_proceed_to_check_otp_title_text" = "ОТР код баталгаажуулах цонх руу шилжлээ";
"cannot_verify_password_title_text" = "Нууц үг буруу байна";
"new_otp_number_has_sent_text" = "ОТР код дахин илгээгдлээ";
"type_4_digit_OTP_number_text" = "ОТР кодыг оруулна уу";
"verification_completed_title_text" = "Баталгаажуулах үе шатууд дууслаа";
"will_change_your_personal_information_title_text" = "Хувийн мэдээлэл шинэчлэгдлээ";

27
GME Remit/MultiLanguages/my-MM.lproj/Localizable.strings

@ -740,3 +740,30 @@
"gps_off_text" = "GPS ပိတ်ထားပါသည်";
"grant_permission_text" = "လိုအပ်သည့် ခွင့်ပြုချက်များကို ရယူပါ";
"location_not_available" = "တည်နေရာကို အတည်ပြုမရသေးပါ ထပ်မံဆောင်ရွက်ပေးပါ";
//Change Profile
"change_personal_information_title_text" = "ကိုယ်ရေးအချက်အလက်";
"name_title_text" = "အမည်";
"nationality_title_text" = "နိုင်ငံသား";
"birthday_title_text" = "မွေးနေ့";
"phonenumber_title_text" = "ဖုန်းနံပါတ်";
"email_title_text" = "လျှို့၀ှက်နံပါတ်";
"password_title_text" = "လျှို့၀ှက်နံပါတ် ပြောင်းလိုပါက နှိပ်ပေးပါ";
"change_to_new_password_text" = "Click to change password";
"change_your_phonenumber_title_text" = "ဖုန်းနံပါတ် ပြောင်းရန်";
"change_your_phonenumber_instruction_text" = "ဖုန်းနံပါတ် ပြောင်းလိုပါက အောက်ပါအချက်အလက်များကို ဖြည့်ပေးပါ";
"new_phonenumber_text" = "ဖုန်းနံပါတ် အသစ်";
"enter_your_new_phonenumber_text" = "ဖုန်းနံပါတ် အသစ်ကို ဖြည့်ပေးပါ";
"save_title_text" = "သိမ်းဆည်းရန်";
"change_your_email_title_text" = "အီးမေးလ် ပြောင်းရန်";
"change_your_email_instruction_text" = "အီးမေးလ် ပြောင်းလိုပါက အောက်ပါ အချက်အလက်များကို ဖြည့်ပေးပါ";
"new_email_text" = "အီးမေးလ်အသစ်";
"enter_your_new_email_text" = "အီးမေးလ်လိပ်စာ အသစ်ကို ထည့်‌ပေးပါ";
"successfully_verified_password_title_text" = "လျှို့၀ှက်နံပါတ် အတည်ပြုတာအောင်မြင်ပါသည်";
"will_proceed_to_check_otp_title_text" = "OTP အတည်ပြုရန်သို့ သွားပါမည်";
"cannot_verify_password_title_text" = "လျှို့၀ှက်နံပါတ်မှားနေပါသည်";
"new_otp_number_has_sent_text" = "OTP နံပါတ် အသစ်ပို့လိုက်ပါသည်";
"type_4_digit_OTP_number_text" = "OTP ဂဏန်းလေးလုံးကိုထည့်ပေးပါ";
"verification_completed_title_text" = "အတည်ပြုခြင်း အောင်မြင်သွားပါသည်";
"will_change_your_personal_information_title_text" = "ပြောင်းလိုသည့် ကိုယ်ရေးအချက်အလက်ပြောင်းလဲသွားပါသည်";

27
GME Remit/MultiLanguages/my.lproj/Localizable.strings

@ -777,3 +777,30 @@
"gps_off_text" = "GPS ပိတ်ထားပါသည်";
"grant_permission_text" = "လိုအပ်သည့် ခွင့်ပြုချက်များကို ရယူပါ";
"location_not_available" = "တည်နေရာကို အတည်ပြုမရသေးပါ ထပ်မံဆောင်ရွက်ပေးပါ";
//Change Profile
"change_personal_information_title_text" = "ကိုယ်ရေးအချက်အလက်";
"name_title_text" = "အမည်";
"nationality_title_text" = "နိုင်ငံသား";
"birthday_title_text" = "မွေးနေ့";
"phonenumber_title_text" = "ဖုန်းနံပါတ်";
"email_title_text" = "လျှို့၀ှက်နံပါတ်";
"password_title_text" = "လျှို့၀ှက်နံပါတ် ပြောင်းလိုပါက နှိပ်ပေးပါ";
"change_to_new_password_text" = "Click to change password";
"change_your_phonenumber_title_text" = "ဖုန်းနံပါတ် ပြောင်းရန်";
"change_your_phonenumber_instruction_text" = "ဖုန်းနံပါတ် ပြောင်းလိုပါက အောက်ပါအချက်အလက်များကို ဖြည့်ပေးပါ";
"new_phonenumber_text" = "ဖုန်းနံပါတ် အသစ်";
"enter_your_new_phonenumber_text" = "ဖုန်းနံပါတ် အသစ်ကို ဖြည့်ပေးပါ";
"save_title_text" = "သိမ်းဆည်းရန်";
"change_your_email_title_text" = "အီးမေးလ် ပြောင်းရန်";
"change_your_email_instruction_text" = "အီးမေးလ် ပြောင်းလိုပါက အောက်ပါ အချက်အလက်များကို ဖြည့်ပေးပါ";
"new_email_text" = "အီးမေးလ်အသစ်";
"enter_your_new_email_text" = "အီးမေးလ်လိပ်စာ အသစ်ကို ထည့်‌ပေးပါ";
"successfully_verified_password_title_text" = "လျှို့၀ှက်နံပါတ် အတည်ပြုတာအောင်မြင်ပါသည်";
"will_proceed_to_check_otp_title_text" = "OTP အတည်ပြုရန်သို့ သွားပါမည်";
"cannot_verify_password_title_text" = "လျှို့၀ှက်နံပါတ်မှားနေပါသည်";
"new_otp_number_has_sent_text" = "OTP နံပါတ် အသစ်ပို့လိုက်ပါသည်";
"type_4_digit_OTP_number_text" = "OTP ဂဏန်းလေးလုံးကိုထည့်ပေးပါ";
"verification_completed_title_text" = "အတည်ပြုခြင်း အောင်မြင်သွားပါသည်";
"will_change_your_personal_information_title_text" = "ပြောင်းလိုသည့် ကိုယ်ရေးအချက်အလက်ပြောင်းလဲသွားပါသည်";

27
GME Remit/MultiLanguages/ne.lproj/Localizable.strings

@ -766,3 +766,30 @@
"gps_off_text" = "GPS चालू गरिएको छैन";
"grant_permission_text" = "कृपया आवश्यक अनुमतिहरू प्रदान गर्नुहोस्";
"location_not_available" = "अहिले तपाईको स्थान पत्ता लग्न सकेन। पछि पुन: प्रयास गर्नुहोस्।";
//Change Profile
"change_personal_information_title_text" = "व्यक्तिगत जानकारी";
"name_title_text" = "नाम";
"nationality_title_text" = "देश";
"birthday_title_text" = "जन्म मिति";
"phonenumber_title_text" = "फोन नम्बर";
"email_title_text" = "ईमेल";
"password_title_text" = "पासवोर्ड";
"change_to_new_password_text" = "पासवर्ड परिवर्तन गर्न क्लिक गर्नुहोस्";
"change_your_phonenumber_title_text" = "फोन नम्बर परिवर्तन";
"change_your_phonenumber_instruction_text" = "तपाईको फोन नम्बर परिवर्तन गर्नका लागि तलको खाली ठाउँ भर्नुहोस्";
"new_phonenumber_text" = "नयाँ फोन नम्बर";
"enter_your_new_phonenumber_text" = "तपाईंको नयाँ फोन नम्बर हल्नुहोस ";
"save_title_text" = "सेभ गर्नुहोस";
"change_your_email_title_text" = "ईमेल परिवर्तन";
"change_your_email_instruction_text" = "तपाईको ईमेल नम्बर परिवर्तन गर्नका लागि तलको खाली ठाउँ भर्नुहोस्";
"new_email_text" = "नयाँ ईमेल";
"enter_your_new_email_text" = "तपाईंको नयाँ ईमेल हल्नुहोस";
"successfully_verified_password_title_text" = "पासवर्ड सफलतापूर्वक प्रमाणित भयो";
"will_proceed_to_check_otp_title_text" = "OTP प्रमाणीकरण गर्नुहोस";
"cannot_verify_password_title_text" = "पासवर्ड प्रमाणित भएन";
"new_otp_number_has_sent_text" = "नयाँ OTP नम्बर पुन: पठाईएको छ";
"type_4_digit_OTP_number_text" = "4अंकको OTP नम्बर टाइप गर्नुहोस्";
"verification_completed_title_text" = "प्रमाणिकरण सबै पूरा भयो";
"will_change_your_personal_information_title_text" = "तपाईंको व्यक्तिगत जानकारी परिवर्तन हुनेछ ";

26
GME Remit/MultiLanguages/ru-RU.lproj/Localizable.strings

@ -768,3 +768,29 @@
"gps_off_text" = "Геолокация отключена.";
"grant_permission_text" = "Пожалуйста, разрешите доступ к необходимым приложениям.";
"location_not_available" = "Местонахождение неопределено. Пожалуйста, повторите попытку позднее.";
//Change Profile
"change_personal_information_title_text" = "Личная информация";
"name_title_text" = "ФИО";
"nationality_title_text" = "Гражданство";
"birthday_title_text" = "Дата рождения";
"phonenumber_title_text" = "Номер телефона";
"email_title_text" = "Электронная почта";
"password_title_text" = "Пароль";
"change_to_new_password_text" = "Изменить пароль";
"change_your_phonenumber_title_text" = "Измненить номер телефона";
"change_your_phonenumber_instruction_text" = "Заполните, чтобы изменить номер телефона";
"new_phonenumber_text" = "Новый номер телефона";
"enter_your_new_phonenumber_text" = "Введите новый номер телефона";
"save_title_text" = "Сохранить";
"change_your_email_title_text" = "Изменить электронный адрес";
"change_your_email_instruction_text" = "Заполните, чтобы изменить адрес электронной почты";
"new_email_text" = "Новый электронный адрес";
"enter_your_new_email_text" = "Введите новый электронный адрес";
"successfully_verified_password_title_text" = "Успешно";
"will_proceed_to_check_otp_title_text" = "Введите ОТР код";
"cannot_verify_password_title_text" = "Неверный пароль";
"new_otp_number_has_sent_text" = "Отправлен новый ОТР код";
"type_4_digit_OTP_number_text" = "Введите 4-х значный ОТР код";
"verification_completed_title_text" = "Успешно";
"will_change_your_personal_information_title_text" = "Изменить личную информацию";

27
GME Remit/MultiLanguages/si.lproj/Localizable.strings

@ -777,3 +777,30 @@
"gps_off_text" = "GPS සක්‍රිය කර නැත";
"grant_permission_text" = "කරුණාකර අවශ්‍ය අවසර ලබා දෙන්න";
"location_not_available" = "මේ මොහොතේ ස්ථානය ලබා ගැනීමට නොහැකි විය. පසුව නැවත උත්සාහ කරන්න";
//Change Profile
"change_personal_information_title_text" = "පුද්ගලික තොරතුරු";
"name_title_text" = "නම";
"nationality_title_text" = "ජාතිය";
"birthday_title_text" = "උපන් දිනය";
"phonenumber_title_text" = "දුරකතන අංකය";
"email_title_text" = "ඊමෙල් ලිපිනය ";
"password_title_text" = "මුරපදය";
"change_to_new_password_text" = "මුරපදය වෙනස් කිරීමට ක්ලික් කරන්න";
"change_your_phonenumber_title_text" = "ඔබගේ දුරකථන අංකය වෙනස් කරන්න";
"change_your_phonenumber_instruction_text" = "ඔබගේ දුරකථන අංකය වෙනස් කිරීමට, පහත හිස් තැන පුරවන්න";
"new_phonenumber_text" = "නව දුරකථන අංකය";
"enter_your_new_phonenumber_text" = "ඔබගේ නව දුරකථන අංකය ඇතුළත් කරන්න";
"save_title_text" = "සුරකින්න";
"change_your_email_title_text" = "ඔබගේ ඊමෙල් ලිපිනය වෙනස් කරන්න";
"change_your_email_instruction_text" = " ඊමෙල් ලිපිනය වෙනස් කිරීමට, පහත හිස් තැන පුරවන්න";
"new_email_text" = "නව ඊමෙල් ලිපිනය";
"enter_your_new_email_text" = "ඔබගේ නව ඊමෙල් ලිපිනය ඇතුළත් කරන්න";
"successfully_verified_password_title_text" = "මුරපදය සාර්ථකව තහවුරු කර ඇත";
"will_proceed_to_check_otp_title_text" = "OTP අංකය පරීක්ෂා කිරීමට ඉදිරියට යනු ඇත";
"cannot_verify_password_title_text" = "මුරපදය සත්‍යාපනය කළ නොහැක";
"new_otp_number_has_sent_text" = "නව OTP අංකයක් නැවත යවා ඇත";
"type_4_digit_OTP_number_text" = "අංක 4 කින් යුත් OTP අංකය ටයිප් කරන්න";
"verification_completed_title_text" = "සත්‍යාපනය සම්පූර්ණයි";
"will_change_your_personal_information_title_text" = "ඔබගේ පුද්ගලික තොරතුරු වෙනස් කරනු ඇත";

27
GME Remit/MultiLanguages/th.lproj/Localizable.strings

@ -764,3 +764,30 @@
"gps_off_text" = "GPS is not turned on.";
"grant_permission_text" = "Please grant the required permissions";
"location_not_available" = "Could not fetch location at the moment. Try again later.";
//Change Profile
"change_personal_information_title_text" = "ข้อมูลส่วนตัว";
"name_title_text" = "ชื่อ";
"nationality_title_text" = "สัญชาติ";
"birthday_title_text" = "วันเดือนปีเกิด";
"phonenumber_title_text" = "เบอร์มือถือ";
"email_title_text" = "อีเมล";
"password_title_text" = "รหัสผ่าน";
"change_to_new_password_text" = "คลิกเพื่อเปลี่ยนรหัสผ่าน";
"change_your_phonenumber_title_text" = "เปลี่ยนเบอร์โทร";
"change_your_phonenumber_instruction_text" = "โปรดระบุในช่องด้านล่าง เพื่อเปลี่ยนเบอร์โทร";
"new_phonenumber_text" = "เบอร์ใหม่";
"enter_your_new_phonenumber_text" = "กรอกเบอร์ใหม่";
"save_title_text" = "บันทึก";
"change_your_email_title_text" = "เปลี่ยนอีเมล";
"change_your_email_instruction_text" = "โปรดระบุในช่องด้านล่าง เพื่อเปลี่ยนอีเมล";
"new_email_text" = "อีเมลใหม่";
"enter_your_new_email_text" = "กรอกอีเมลใหม่";
"successfully_verified_password_title_text" = "ยืนยันรหัสผ่านเรียบร้อยแล้ว";
"will_proceed_to_check_otp_title_text" = "ยืนยันการตรวจสอบทาง OTP";
"cannot_verify_password_title_text" = "ไม่สามารถยืนยันรหัสผ่าน";
"new_otp_number_has_sent_text" = "ส่งรหัส OTP อีกครั้ง";
"type_4_digit_OTP_number_text" = "กรอกรหัส OTP 4 อักขระ";
"verification_completed_title_text" = "การยืนยันทั้งหมดเสร็จสมบูรณ์";
"will_change_your_personal_information_title_text" = "เปลี่ยนข้อมูลส่วนตัว";

27
GME Remit/MultiLanguages/ur-PK.lproj/Localizable.strings

@ -693,3 +693,30 @@
"gps_off_text" = "جی پی ایس آن نہیں ہے۔";
"grant_permission_text" = "براہ کرم مطلوبہ اجازتیں دیں";
"location_not_available" = "اس وقت لوکیشن کی بازیافت نہیں ہوسکی۔ بعد میں دوبارہ کوشش کریں۔";
//Change Profile
"change_personal_information_title_text" = "ذاتی معلومات";
"name_title_text" = "نام";
"nationality_title_text" = "قومیت";
"birthday_title_text" = "سالگرہ";
"phonenumber_title_text" = "فون نمبر";
"email_title_text" = "ای میل";
"password_title_text" = "پاس ورڈ";
"change_to_new_password_text" = "پاس ورڈ تبدیل کرنے کے لئے کلک کریں";
"change_your_phonenumber_title_text" = "اپنا فون نمبر تبدیل کریں";
"change_your_phonenumber_instruction_text" = "اپنا فون نمبر تبدیل کرنے کے لئے ، نیچے خالی جگہ پر کریں";
"new_phonenumber_text" = "نیا فون نمبر";
"enter_your_new_phonenumber_text" = "اپنا نیا فون نمبر درج کریں";
"save_title_text" = "محفوظ کریں";
"change_your_email_title_text" = "اپنا ای میل تبدیل کریں";
"change_your_email_instruction_text" = "ای میل کو تبدیل کرنے کے لئے ، نیچے خالی جگہ پر کریں";
"new_email_text" = "نیا ای میل";
"enter_your_new_email_text" = "اپنا نیا ای میل ایڈریس درج کریں";
"successfully_verified_password_title_text" = "کامیابی کے ساتھ تصدیق شدہ پاس ورڈ";
"will_proceed_to_check_otp_title_text" = "ایک بار کا پاس ورڈ(OTP) چیک کرنے کے لئے آگے بڑھیں گے ";
"cannot_verify_password_title_text" = "پاس ورڈ کی تصدیق نہیں کی جاسکتی ہے";
"new_otp_number_has_sent_text" = "نیا او ٹی پی (ایک بار کا پاس ورڈ(OTP)) نمبر دوبارہ بھیج دیا گیا ہے";
"type_4_digit_OTP_number_text" = "4 ہندسوں والا (OTP)او ٹی پی نمبر ٹائپ کریں";
"verification_completed_title_text" = "تصدیق مکمل ہوچکی ہے";
"will_change_your_personal_information_title_text" = "آپ کی ذاتی معلومات کو بدل دے گی";

27
GME Remit/MultiLanguages/uz.lproj/Localizable.strings

@ -768,3 +768,30 @@
"gps_off_text" = "GPS yoqilmagan";
"grant_permission_text" = "Kerakli ruhsatlarni berish";
"location_not_available" = "Ayni vaqtda manzil aniqlanmadi, keyinroq urinib kuring.";
//Change Profile
"change_personal_information_title_text" = "Shaxsiy ma'lumotlar";
"name_title_text" = "Ism Familiya";
"nationality_title_text" = "Fuqarolik";
"birthday_title_text" = "Tug'ilgan sana";
"phonenumber_title_text" = "Telefon raqam";
"email_title_text" = "elektron pochta manzil";
"password_title_text" = "parol";
"change_to_new_password_text" = "Parolni o'zgartirish uchun bosing";
"change_your_phonenumber_title_text" = "Telefon raqamni o'zgartirish";
"change_your_phonenumber_instruction_text" = "Telefon raqamni o'zgartirish uchun, quyidagi bo'sh joyni to'ldiring";
"new_phonenumber_text" = "Yangi telefon raqam";
"enter_your_new_phonenumber_text" = "Yangi telefon raqamingizni kiriting";
"save_title_text" = "Saqlash";
"change_your_email_title_text" = "elektron pochta manzilini o'zgartirish";
"change_your_email_instruction_text" = "elektron pochta manzilini o'zgartirish uchun, quyidagi bo'sh joyni to'ldiring";
"new_email_text" = "Yangi elektron pochta manzili";
"enter_your_new_email_text" = "Yangi elektron pochta manzilingizni kiriting";
"successfully_verified_password_title_text" = "Parol muvaffaqiyatli tasdiqlandi";
"will_proceed_to_check_otp_title_text" = "OTP tekshiruviga o'tish";
"cannot_verify_password_title_text" = "parol tasdiqlana olmadi";
"new_otp_number_has_sent_text" = "Yangi OTP kod jo'natildi";
"type_4_digit_OTP_number_text" = "4 sonli OTP kodni kiriting";
"verification_completed_title_text" = "Tasdiqlanish to'liq yakunlandi";
"will_change_your_personal_information_title_text" = "Shaxsiy ma'lumotlaringiz o'zgartirildi";

27
GME Remit/MultiLanguages/vi-VN.lproj/Localizable.strings

@ -760,3 +760,30 @@
"gps_off_text" = "Định vị chưa được bật.";
"grant_permission_text" = "Vui lòng cung cấp các yêu cầu cần thiết";
"location_not_available" = "Không thể định vị địa điểm ngay lúc nào. Hãy thử lại một lần nữa.";
//Change Profile
"change_personal_information_title_text" = "Thông tin cá nhân";
"name_title_text" = "Tên";
"nationality_title_text" = "Quốc tịch";
"birthday_title_text" = "Ngày tháng năm sinh";
"phonenumber_title_text" = "Số điện thoại";
"email_title_text" = "Email";
"password_title_text" = "Mật khẩu";
"change_to_new_password_text" = "Nhấn để thay đổi mật khẩu";
"change_your_phonenumber_title_text" = "Thay đổi số điện thoại ";
"change_your_phonenumber_instruction_text" = "Để thay đổi số điện thoại, điền vào ô trống dưới đây";
"new_phonenumber_text" = "Số điện thoại mới";
"enter_your_new_phonenumber_text" = "Nhập số điện thoại mới";
"save_title_text" = "Lưu";
"change_your_email_title_text" = "Thay đổi email";
"change_your_email_instruction_text" = "Để thay đổi email, điền vào ô trống dưới đây";
"new_email_text" = "Email mới";
"enter_your_new_email_text" = "Nhập địa chỉ Email mới";
"successfully_verified_password_title_text" = "Xác thực mật khẩu thành công";
"will_proceed_to_check_otp_title_text" = "Sẽ tiến hành xác thực OTP";
"cannot_verify_password_title_text" = "Không thể xác thực mật khẩu";
"new_otp_number_has_sent_text" = "Mã số OTP mới đã được gửi lại";
"type_4_digit_OTP_number_text" = "Nhập 4 ký tự mã số OTP";
"verification_completed_title_text" = "Quá trình xác thực hoàn tất";
"will_change_your_personal_information_title_text" = "Sẽ thay đổi thông tin cá nhân của bạn";
Loading…
Cancel
Save