InKwon James Kim
5 years ago
14 changed files with 568 additions and 25 deletions
-
108GME Remit.xcodeproj/project.pbxproj
-
11GME Remit/Modules/PowerCallModules/LocalTopup/PhoneCardRecharge/User Interface/View/PhoneCardRechargeViewController.swift
-
30GME Remit/Modules/PowerCallModules/RechargeHistory/Application Logic/Interactor/RechargeHistoryInteractor.swift
-
15GME Remit/Modules/PowerCallModules/RechargeHistory/Application Logic/Interactor/RechargeHistoryInteractorIO.swift
-
13GME Remit/Modules/PowerCallModules/RechargeHistory/Application Logic/Service/RechargeHistoryService.swift
-
11GME Remit/Modules/PowerCallModules/RechargeHistory/Application Logic/Service/RechargeHistoryServiceType.swift
-
39GME Remit/Modules/PowerCallModules/RechargeHistory/User Interface/Presenter/RechargeHistoryPresenter.swift
-
212GME Remit/Modules/PowerCallModules/RechargeHistory/User Interface/View/RechargeHistory.storyboard
-
72GME Remit/Modules/PowerCallModules/RechargeHistory/User Interface/View/RechargeHistoryViewController.swift
-
33GME Remit/Modules/PowerCallModules/RechargeHistory/User Interface/Wireframe/RechargeHistoryWireframe.swift
-
13GME Remit/Modules/PowerCallModules/RechargeHistory/User Interface/Wireframe/RechargeHistoryWireframeInput.swift
-
24GME Remit/Modules/RemittanceModules/TransactionHistoryModules/TransactionHistory/User Interface/View/TransactionHistory.storyboard
-
2GME Remit/Modules/RemittanceModules/TransactionHistoryModules/TransactionHistoryGroup/User Interface/View/TransactionHistoryGroupViewController.swift
-
10GME Remit/Modules/RewardModules/OrderHistory/User Interface/View/OrderHistory.storyboard
@ -0,0 +1,30 @@ |
|||
// |
|||
// RechargeHistoryInteractor.swift |
|||
// GME Remit |
|||
// |
|||
// Created by InKwon James Kim on 2019/11/04. |
|||
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved. |
|||
// |
|||
|
|||
import Foundation |
|||
|
|||
class RechargeHistoryInteractor { |
|||
|
|||
// MARK: Properties |
|||
|
|||
weak var output: RechargeHistoryInteractorOutput? |
|||
private let service: RechargeHistoryServiceType |
|||
|
|||
// MARK: Initialization |
|||
|
|||
init(service: RechargeHistoryServiceType) { |
|||
self.service = service |
|||
} |
|||
|
|||
} |
|||
|
|||
// MARK: RechargeHistory interactor input interface |
|||
|
|||
extension RechargeHistoryInteractor: RechargeHistoryInteractorInput { |
|||
|
|||
} |
@ -0,0 +1,15 @@ |
|||
// |
|||
// RechargeHistoryInteractorIO.swift |
|||
// GME Remit |
|||
// |
|||
// Created by InKwon James Kim on 2019/11/04. |
|||
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved. |
|||
// |
|||
|
|||
protocol RechargeHistoryInteractorInput: class { |
|||
|
|||
} |
|||
|
|||
protocol RechargeHistoryInteractorOutput: class { |
|||
|
|||
} |
@ -0,0 +1,13 @@ |
|||
// |
|||
// RechargeHistoryService.swift |
|||
// GME Remit |
|||
// |
|||
// Created by InKwon James Kim on 2019/11/04. |
|||
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved. |
|||
// |
|||
|
|||
import Foundation |
|||
|
|||
class RechargeHistoryService: RechargeHistoryServiceType { |
|||
|
|||
} |
@ -0,0 +1,11 @@ |
|||
// |
|||
// RechargeHistoryServiceType.swift |
|||
// GME Remit |
|||
// |
|||
// Created by InKwon James Kim on 2019/11/04. |
|||
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved. |
|||
// |
|||
|
|||
protocol RechargeHistoryServiceType: class { |
|||
|
|||
} |
@ -0,0 +1,39 @@ |
|||
// |
|||
// RechargeHistoryPresenter.swift |
|||
// GME Remit |
|||
// |
|||
// Created by InKwon James Kim on 2019/11/04. |
|||
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved. |
|||
// |
|||
|
|||
import RxSwift |
|||
import RxCocoa |
|||
|
|||
class RechargeHistoryPresenter: ViewModelType { |
|||
var interactor: RechargeHistoryInteractorInput? |
|||
var wireframe: RechargeHistoryWireframeInput? |
|||
|
|||
struct Input {} |
|||
|
|||
struct Output { |
|||
let isError: Driver<Error> |
|||
let isProgress: Driver<Bool> |
|||
} |
|||
|
|||
private let disposeBag = DisposeBag() |
|||
|
|||
private let progressLinker = PublishSubject<Bool>() |
|||
private let errorLinker = PublishSubject<Error>() |
|||
|
|||
func transform(input: Input) -> Output { |
|||
return Output( |
|||
isError: errorLinker.asDriverOnErrorJustComplete(), |
|||
isProgress: progressLinker.asDriverOnErrorJustComplete() |
|||
) |
|||
} |
|||
} |
|||
|
|||
// MARK: RechargeHistory interactor output interface |
|||
extension RechargeHistoryPresenter: RechargeHistoryInteractorOutput { |
|||
|
|||
} |
@ -0,0 +1,212 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="HSb-ou-7T5"> |
|||
<device id="retina4_7" orientation="portrait" appearance="light"/> |
|||
<dependencies> |
|||
<deployment identifier="iOS"/> |
|||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15509"/> |
|||
<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> |
|||
<!--RechargeHistory--> |
|||
<scene sceneID="R60-Pu-Hpy"> |
|||
<objects> |
|||
<viewController storyboardIdentifier="RechargeHistoryViewController" title="RechargeHistory" id="HSb-ou-7T5" customClass="RechargeHistoryViewController" sceneMemberID="viewController"> |
|||
<view key="view" contentMode="scaleToFill" id="9Uc-9s-KgO"> |
|||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/> |
|||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
|||
<subviews> |
|||
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="GyV-RQ-S76"> |
|||
<rect key="frame" x="0.0" y="10" width="375" height="50"/> |
|||
<subviews> |
|||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="FbO-fp-5M1"> |
|||
<rect key="frame" x="0.0" y="0.0" width="312" height="50"/> |
|||
<subviews> |
|||
<searchBar contentMode="redraw" searchBarStyle="minimal" translatesAutoresizingMaskIntoConstraints="NO" id="viD-UT-958"> |
|||
<rect key="frame" x="10" y="0.0" width="302" height="50"/> |
|||
<textInputTraits key="textInputTraits"/> |
|||
</searchBar> |
|||
</subviews> |
|||
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/> |
|||
<constraints> |
|||
<constraint firstItem="viD-UT-958" firstAttribute="leading" secondItem="FbO-fp-5M1" secondAttribute="leading" constant="10" id="1Vb-9h-Orz"/> |
|||
<constraint firstItem="viD-UT-958" firstAttribute="top" secondItem="FbO-fp-5M1" secondAttribute="top" id="P51-tN-Ld7"/> |
|||
<constraint firstAttribute="trailing" secondItem="viD-UT-958" secondAttribute="trailing" id="eN6-DY-Qn3"/> |
|||
<constraint firstAttribute="bottom" secondItem="viD-UT-958" secondAttribute="bottom" id="pXz-kP-70e"/> |
|||
</constraints> |
|||
</view> |
|||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aJz-Qa-aaJ"> |
|||
<rect key="frame" x="312" y="0.0" width="63" height="50"/> |
|||
<subviews> |
|||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="IRp-JR-dKF"> |
|||
<rect key="frame" x="5" y="5" width="53" height="40"/> |
|||
<state key="normal" image="ic_calender"/> |
|||
</button> |
|||
</subviews> |
|||
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/> |
|||
<constraints> |
|||
<constraint firstItem="IRp-JR-dKF" firstAttribute="top" secondItem="aJz-Qa-aaJ" secondAttribute="top" constant="5" id="410-i0-VaZ"/> |
|||
<constraint firstItem="IRp-JR-dKF" firstAttribute="leading" secondItem="aJz-Qa-aaJ" secondAttribute="leading" constant="5" id="5Pw-uv-LJ2"/> |
|||
<constraint firstAttribute="bottom" secondItem="IRp-JR-dKF" secondAttribute="bottom" constant="5" id="UXA-XL-Tcd"/> |
|||
<constraint firstAttribute="trailing" secondItem="IRp-JR-dKF" secondAttribute="trailing" constant="5" id="iZs-Ay-yW9"/> |
|||
</constraints> |
|||
</view> |
|||
</subviews> |
|||
<constraints> |
|||
<constraint firstAttribute="height" constant="50" id="t4d-cK-az8"/> |
|||
</constraints> |
|||
</stackView> |
|||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Yw9-cK-pIF"> |
|||
<rect key="frame" x="5" y="70" width="365" height="35"/> |
|||
<subviews> |
|||
<view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EHz-NG-QNu"> |
|||
<rect key="frame" x="10" y="1" width="345" height="33"/> |
|||
<subviews> |
|||
<stackView opaque="NO" contentMode="scaleToFill" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="VZm-PZ-6xT"> |
|||
<rect key="frame" x="110" y="-8.5" width="125" height="50"/> |
|||
<subviews> |
|||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kXj-V1-9fF"> |
|||
<rect key="frame" x="0.0" y="0.0" width="50" height="50"/> |
|||
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="16"/> |
|||
<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="Vc7-6n-qg3"> |
|||
<rect key="frame" x="58" y="0.0" width="9" height="50"/> |
|||
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="16"/> |
|||
<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="dwn-HQ-Zqv"> |
|||
<rect key="frame" x="75" y="0.0" width="50" height="50"/> |
|||
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Medium" family="San Francisco Display" pointSize="16"/> |
|||
<color key="textColor" name="ThemeText"/> |
|||
<nil key="highlightedColor"/> |
|||
</label> |
|||
</subviews> |
|||
</stackView> |
|||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="mtc-x2-p8u"> |
|||
<rect key="frame" x="320" y="9" width="15" height="15"/> |
|||
<constraints> |
|||
<constraint firstAttribute="height" constant="15" id="81h-kW-v0l"/> |
|||
<constraint firstAttribute="width" constant="15" id="nfu-bk-LLl"/> |
|||
</constraints> |
|||
<state key="normal" title="Button" image="ic_error"/> |
|||
</button> |
|||
</subviews> |
|||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
|||
<constraints> |
|||
<constraint firstItem="VZm-PZ-6xT" firstAttribute="centerY" secondItem="EHz-NG-QNu" secondAttribute="centerY" id="B5E-ez-zv1"/> |
|||
<constraint firstItem="mtc-x2-p8u" firstAttribute="centerY" secondItem="EHz-NG-QNu" secondAttribute="centerY" id="D6V-Kd-ukQ"/> |
|||
<constraint firstAttribute="trailing" secondItem="mtc-x2-p8u" secondAttribute="trailing" constant="10" id="La3-8L-UlL"/> |
|||
<constraint firstItem="VZm-PZ-6xT" firstAttribute="centerX" secondItem="EHz-NG-QNu" secondAttribute="centerX" id="e1l-BN-EBp"/> |
|||
</constraints> |
|||
</view> |
|||
</subviews> |
|||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
|||
<constraints> |
|||
<constraint firstAttribute="trailing" secondItem="EHz-NG-QNu" secondAttribute="trailing" constant="10" id="UKh-3x-Ao0"/> |
|||
<constraint firstItem="EHz-NG-QNu" firstAttribute="top" secondItem="Yw9-cK-pIF" secondAttribute="top" constant="1" id="cdB-bO-Exa"/> |
|||
<constraint firstAttribute="height" constant="35" id="hZ6-aq-01h"/> |
|||
<constraint firstItem="EHz-NG-QNu" firstAttribute="leading" secondItem="Yw9-cK-pIF" secondAttribute="leading" constant="10" id="iYg-GQ-yFf"/> |
|||
<constraint firstAttribute="bottom" secondItem="EHz-NG-QNu" secondAttribute="bottom" constant="1" id="jMn-uV-Ch2"/> |
|||
</constraints> |
|||
</view> |
|||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="kkE-JE-vKh"> |
|||
<rect key="frame" x="10" y="115" width="355" height="542"/> |
|||
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/> |
|||
<view key="tableFooterView" contentMode="scaleToFill" id="sUn-Qd-aYI"> |
|||
<rect key="frame" x="0.0" y="141" width="355" 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 histories" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Om4-pB-2Ja"> |
|||
<rect key="frame" x="112.5" y="13.5" width="130" height="17"/> |
|||
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="14"/> |
|||
<color key="textColor" name="ThemeText"/> |
|||
<nil key="highlightedColor"/> |
|||
</label> |
|||
</subviews> |
|||
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/> |
|||
<constraints> |
|||
<constraint firstItem="Om4-pB-2Ja" firstAttribute="centerX" secondItem="sUn-Qd-aYI" secondAttribute="centerX" id="E9L-yi-QJ5"/> |
|||
<constraint firstItem="Om4-pB-2Ja" firstAttribute="centerY" secondItem="sUn-Qd-aYI" secondAttribute="centerY" id="P4Z-MJ-Swd"/> |
|||
</constraints> |
|||
</view> |
|||
<prototypes> |
|||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" rowHeight="85" id="swM-we-WxX"> |
|||
<rect key="frame" x="0.0" y="28" width="355" height="85"/> |
|||
<autoresizingMask key="autoresizingMask"/> |
|||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="swM-we-WxX" id="SyI-Yh-F6t"> |
|||
<rect key="frame" x="0.0" y="0.0" width="355" height="85"/> |
|||
<autoresizingMask key="autoresizingMask"/> |
|||
<subviews> |
|||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bXu-3Y-Pkq"> |
|||
<rect key="frame" x="320" y="0.0" width="30" height="85"/> |
|||
<subviews> |
|||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="right_arrow" translatesAutoresizingMaskIntoConstraints="NO" id="I8b-az-9YA"> |
|||
<rect key="frame" x="5" y="0.0" width="20" height="85"/> |
|||
<constraints> |
|||
<constraint firstAttribute="width" constant="20" id="gKw-Jm-b0N"/> |
|||
</constraints> |
|||
</imageView> |
|||
</subviews> |
|||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
|||
<constraints> |
|||
<constraint firstAttribute="bottom" secondItem="I8b-az-9YA" secondAttribute="bottom" id="5vh-yj-Q7i"/> |
|||
<constraint firstAttribute="height" constant="90" id="FkP-B6-HWD"/> |
|||
<constraint firstAttribute="trailing" secondItem="I8b-az-9YA" secondAttribute="trailing" constant="5" id="bcz-Ow-Hna"/> |
|||
<constraint firstItem="I8b-az-9YA" firstAttribute="leading" secondItem="bXu-3Y-Pkq" secondAttribute="leading" constant="5" id="qr3-Xp-mXX"/> |
|||
<constraint firstItem="I8b-az-9YA" firstAttribute="top" secondItem="bXu-3Y-Pkq" secondAttribute="top" id="ucA-0e-Suc"/> |
|||
</constraints> |
|||
</view> |
|||
</subviews> |
|||
<constraints> |
|||
<constraint firstAttribute="trailing" secondItem="bXu-3Y-Pkq" secondAttribute="trailing" constant="5" id="LHb-na-xEa"/> |
|||
<constraint firstItem="bXu-3Y-Pkq" firstAttribute="top" secondItem="SyI-Yh-F6t" secondAttribute="top" id="Zgv-rl-CQp"/> |
|||
<constraint firstAttribute="bottom" secondItem="bXu-3Y-Pkq" secondAttribute="bottom" id="dzT-5N-agg"/> |
|||
</constraints> |
|||
</tableViewCellContentView> |
|||
</tableViewCell> |
|||
</prototypes> |
|||
</tableView> |
|||
</subviews> |
|||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
|||
<constraints> |
|||
<constraint firstItem="Yw9-cK-pIF" firstAttribute="top" secondItem="GyV-RQ-S76" secondAttribute="bottom" constant="10" id="34F-eG-Fho"/> |
|||
<constraint firstAttribute="trailing" secondItem="Yw9-cK-pIF" secondAttribute="trailing" constant="5" id="3ct-1I-TS1"/> |
|||
<constraint firstItem="O1T-1R-Sun" firstAttribute="bottom" secondItem="kkE-JE-vKh" secondAttribute="bottom" constant="10" id="6TR-9d-XZL"/> |
|||
<constraint firstItem="kkE-JE-vKh" firstAttribute="top" secondItem="Yw9-cK-pIF" secondAttribute="bottom" constant="10" id="Std-hM-zhA"/> |
|||
<constraint firstItem="kkE-JE-vKh" firstAttribute="leading" secondItem="O1T-1R-Sun" secondAttribute="leading" constant="10" id="US6-mo-06Z"/> |
|||
<constraint firstItem="GyV-RQ-S76" firstAttribute="top" secondItem="O1T-1R-Sun" secondAttribute="top" constant="10" id="WhH-tY-cXg"/> |
|||
<constraint firstItem="O1T-1R-Sun" firstAttribute="trailing" secondItem="kkE-JE-vKh" secondAttribute="trailing" constant="10" id="blY-bE-ogR"/> |
|||
<constraint firstItem="Yw9-cK-pIF" firstAttribute="leading" secondItem="O1T-1R-Sun" secondAttribute="leading" constant="5" id="lMv-ka-EXR"/> |
|||
<constraint firstAttribute="trailing" secondItem="GyV-RQ-S76" secondAttribute="trailing" id="xfw-Fh-wAQ"/> |
|||
<constraint firstItem="GyV-RQ-S76" firstAttribute="leading" secondItem="O1T-1R-Sun" secondAttribute="leading" id="zeS-je-2DG"/> |
|||
</constraints> |
|||
<viewLayoutGuide key="safeArea" id="O1T-1R-Sun"/> |
|||
</view> |
|||
</viewController> |
|||
<placeholder placeholderIdentifier="IBFirstResponder" id="8je-5K-XuW" userLabel="First Responder" sceneMemberID="firstResponder"/> |
|||
</objects> |
|||
<point key="canvasLocation" x="-92" y="232.53373313343329"/> |
|||
</scene> |
|||
</scenes> |
|||
<resources> |
|||
<image name="ic_calender" width="25" height="25"/> |
|||
<image name="ic_error" width="55" height="55"/> |
|||
<image name="right_arrow" width="128" height="128"/> |
|||
<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> |
@ -0,0 +1,72 @@ |
|||
// |
|||
// RechargeHistoryViewController.swift |
|||
// GME Remit |
|||
// |
|||
// Created by InKwon James Kim on 2019/11/04. |
|||
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved. |
|||
// |
|||
|
|||
import UIKit |
|||
import RxSwift |
|||
import RxCocoa |
|||
|
|||
class RechargeHistoryViewController: UIViewController { |
|||
|
|||
// MARK: Properties |
|||
var presenter: RechargeHistoryPresenter! |
|||
|
|||
private let disposeBag = DisposeBag() |
|||
// MARK: Computed Properties |
|||
|
|||
// MARK: IBOutlets |
|||
|
|||
// MARK: VC's Life cycle |
|||
override func viewDidLoad() { |
|||
super.viewDidLoad() |
|||
setup() |
|||
} |
|||
|
|||
override func viewWillAppear(_ animated: Bool) { |
|||
super.viewWillAppear(animated) |
|||
} |
|||
|
|||
override func viewWillDisappear(_ animated: Bool) { |
|||
super.viewWillDisappear(animated) |
|||
} |
|||
|
|||
// MARK: IBActions |
|||
|
|||
} |
|||
|
|||
// MARK: Other Functions |
|||
extension RechargeHistoryViewController { |
|||
|
|||
private func setup() { |
|||
setUI() |
|||
setBinding() |
|||
setUIBinding() |
|||
} |
|||
|
|||
private func setUI() { |
|||
|
|||
} |
|||
|
|||
private func setUIBinding() { |
|||
|
|||
} |
|||
|
|||
private func setBinding() { |
|||
let input = RechargeHistoryPresenter.Input() |
|||
let output = presenter.transform(input: input) |
|||
|
|||
output.isError |
|||
.drive( |
|||
onNext: { self.alert(type: .error, message: $0.localizedDescription) } |
|||
).disposed(by: disposeBag) |
|||
|
|||
output.isProgress |
|||
.drive( |
|||
onNext: { $0 ? self.showProgressHud() : self.hideProgressHud() } |
|||
).disposed(by: disposeBag) |
|||
} |
|||
} |
@ -0,0 +1,33 @@ |
|||
// |
|||
// RechargeHistoryWireframe.swift |
|||
// GME Remit |
|||
// |
|||
// Created by InKwon James Kim on 2019/11/04. |
|||
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved. |
|||
// |
|||
|
|||
import UIKit |
|||
|
|||
class RechargeHistoryWireframe { |
|||
weak var view: UIViewController! |
|||
} |
|||
|
|||
extension RechargeHistoryWireframe: RechargeHistoryWireframeInput { |
|||
|
|||
var storyboardName: String {return "RechargeHistory"} |
|||
|
|||
func getMainView() -> UIViewController { |
|||
let service = RechargeHistoryService() |
|||
let interactor = RechargeHistoryInteractor(service: service) |
|||
let presenter = RechargeHistoryPresenter() |
|||
let viewController = viewControllerFromStoryboard(of: RechargeHistoryViewController.self) |
|||
|
|||
viewController.presenter = presenter |
|||
interactor.output = presenter |
|||
presenter.interactor = interactor |
|||
presenter.wireframe = self |
|||
|
|||
view = viewController |
|||
return viewController |
|||
} |
|||
} |
@ -0,0 +1,13 @@ |
|||
// |
|||
// RechargeHistoryWireframeInput.swift |
|||
// GME Remit |
|||
// |
|||
// Created by InKwon James Kim on 2019/11/04. |
|||
//Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved. |
|||
// |
|||
|
|||
import Foundation |
|||
|
|||
protocol RechargeHistoryWireframeInput: WireframeInput { |
|||
|
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue