Browse Source

penny test viewcontroller shown first time automatically

pull/1/head
ccr 6 years ago
parent
commit
c2d60dd121
  1. 11
      GMERemittance/Module/Home/User Interface/View/HomeViewController.swift
  2. 3
      GMERemittance/Module/Home/User Interface/Wireframe/HomeWireframe.swift
  3. 19
      GMERemittance/Module/PennyTest/User Interface/View/PennyTest.storyboard
  4. 19
      GMERemittance/Module/PennyTest/User Interface/View/PennyTestViewController.swift
  5. 20
      GMERemittance/Utility/AppConstants.swift
  6. 65
      Pods/Pods.xcodeproj/xcuserdata/shishir.xcuserdatad/xcschemes/xcschememanagement.plist

11
GMERemittance/Module/Home/User Interface/View/HomeViewController.swift

@ -64,6 +64,7 @@ class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout {
override func viewWillAppear(_ animated: Bool) { override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated) super.viewWillAppear(animated)
configureViews() configureViews()
showPennyTestScreen()
updateBalance() updateBalance()
self.setActionBarIcons(showNotificationParameter: false) // set true if there is unread notification self.setActionBarIcons(showNotificationParameter: false) // set true if there is unread notification
} }
@ -102,6 +103,12 @@ class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout {
self.presenter?.refreshData() self.presenter?.refreshData()
} }
private func showPennyTestScreen() {
if Utility.shouldShowPennyTestScreen() {
presenter?.showPennyTest()
}
}
private func updateBalance() { private func updateBalance() {
let balance = user?.availableBalance ?? "" let balance = user?.availableBalance ?? ""
UserDefaults.standard.set(balance, forKey: UserKeys.availableBalance) UserDefaults.standard.set(balance, forKey: UserKeys.availableBalance)
@ -273,9 +280,6 @@ class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout {
} }
private func setVerificationText() { private func setVerificationText() {
if didNotSubmitKycAndNotVerified() { if didNotSubmitKycAndNotVerified() {
verificationTitleLabel.text = "Verify your Account" verificationTitleLabel.text = "Verify your Account"
self.verificationText.text = "Kindly complete your registration process with us to start using GME services." self.verificationText.text = "Kindly complete your registration process with us to start using GME services."
@ -327,7 +331,6 @@ class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout {
}else if shouldShowPennyTestError() { }else if shouldShowPennyTestError() {
self.presenter?.showPennyTest() self.presenter?.showPennyTest()
} }
} }

3
GMERemittance/Module/Home/User Interface/Wireframe/HomeWireframe.swift

@ -70,7 +70,8 @@ extension HomeWireframe: HomeWireframeInput {
func showPennyTest() { func showPennyTest() {
if let navigation = self.view.navigationController { if let navigation = self.view.navigationController {
self.pennyTestWireFrame.pushMainView(in: navigation)
// self.pennyTestWireFrame.pushMainView(in: navigation)
self.pennyTestWireFrame.openMainView(source: self.view)
} }
} }

19
GMERemittance/Module/PennyTest/User Interface/View/PennyTest.storyboard

@ -1,11 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14313.18" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="HSb-ou-7T5">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14109" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="HSb-ou-7T5">
<device id="retina4_7" orientation="portrait"> <device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/> <adaptation id="fullscreen"/>
</device> </device>
<dependencies> <dependencies>
<deployment identifier="iOS"/> <deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14283.14"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
<capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/> <capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies> </dependencies>
@ -30,7 +31,7 @@
<rect key="frame" x="10" y="10" width="355" height="647"/> <rect key="frame" x="10" y="10" width="355" height="647"/>
<subviews> <subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4Rc-Nq-MZM"> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4Rc-Nq-MZM">
<rect key="frame" x="0.0" y="40" width="355" height="565"/>
<rect key="frame" x="0.0" y="40" width="355" height="619"/>
<subviews> <subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bank1" translatesAutoresizingMaskIntoConstraints="NO" id="ss6-tL-AGW"> <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bank1" translatesAutoresizingMaskIntoConstraints="NO" id="ss6-tL-AGW">
<rect key="frame" x="127.5" y="63" width="100" height="100"/> <rect key="frame" x="127.5" y="63" width="100" height="100"/>
@ -39,14 +40,14 @@
<constraint firstAttribute="width" secondItem="ss6-tL-AGW" secondAttribute="height" multiplier="1:1" id="NZ8-yC-nZP"/> <constraint firstAttribute="width" secondItem="ss6-tL-AGW" secondAttribute="height" multiplier="1:1" id="NZ8-yC-nZP"/>
</constraints> </constraints>
</imageView> </imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Your bank account verification is required in order to complete the registration. Do you want to verify it now?" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="v7v-LL-JPa">
<rect key="frame" x="15" y="203" width="325" height="61"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="17"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Your bank account verification is required in order to complete the registration. Do you want to verify it now?" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="v7v-LL-JPa">
<rect key="frame" x="15" y="203" width="325" height="115"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="24"/>
<color key="textColor" red="0.29019607843137252" green="0.29019607843137252" blue="0.29019607843137252" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color key="textColor" red="0.29019607843137252" green="0.29019607843137252" blue="0.29019607843137252" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="3OS-ti-E8d"> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="3OS-ti-E8d">
<rect key="frame" x="77.5" y="365" width="200" height="50"/>
<rect key="frame" x="77.5" y="419" width="200" height="50"/>
<color key="backgroundColor" red="0.92941176469999998" green="0.10980392160000001" blue="0.14117647059999999" alpha="1" colorSpace="calibratedRGB"/> <color key="backgroundColor" red="0.92941176469999998" green="0.10980392160000001" blue="0.14117647059999999" alpha="1" colorSpace="calibratedRGB"/>
<constraints> <constraints>
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="50" id="9kg-kR-MK6"/> <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="50" id="9kg-kR-MK6"/>
@ -67,7 +68,7 @@
</connections> </connections>
</button> </button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="93u-O5-ntU"> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="93u-O5-ntU">
<rect key="frame" x="146" y="435" width="63" height="33"/>
<rect key="frame" x="146" y="489" width="63" height="33"/>
<fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="17"/> <fontDescription key="fontDescription" name="SanFranciscoDisplay-Regular" family="San Francisco Display" pointSize="17"/>
<state key="normal" title="Not Now"> <state key="normal" title="Not Now">
<color key="titleColor" red="0.29019607843137252" green="0.29019607843137252" blue="0.29019607843137252" alpha="1" colorSpace="calibratedRGB"/> <color key="titleColor" red="0.29019607843137252" green="0.29019607843137252" blue="0.29019607843137252" alpha="1" colorSpace="calibratedRGB"/>
@ -133,7 +134,7 @@
</scene> </scene>
</scenes> </scenes>
<resources> <resources>
<image name="bank1" width="400" height="400"/>
<image name="bank1" width="200" height="200"/>
</resources> </resources>
<color key="tintColor" red="0.78177064659999995" green="0.55228364470000002" blue="0.018981300289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color key="tintColor" red="0.78177064659999995" green="0.55228364470000002" blue="0.018981300289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</document> </document>

19
GMERemittance/Module/PennyTest/User Interface/View/PennyTestViewController.swift

@ -50,7 +50,7 @@ class PennyTestViewController: UIViewController {
self.proceedButton.rounded() self.proceedButton.rounded()
iconImageView.rounded() iconImageView.rounded()
iconImageView.layer.borderColor = AppConstants.themeRedColor.cgColor iconImageView.layer.borderColor = AppConstants.themeRedColor.cgColor
iconImageView.layer.borderWidth = 1
iconImageView.layer.borderWidth = 2
iconImageView.layer.contentsScale = UIScreen.main.scale iconImageView.layer.contentsScale = UIScreen.main.scale
if let _view = self.backGroundView { if let _view = self.backGroundView {
_view.frame = self.view.frame _view.frame = self.view.frame
@ -58,14 +58,13 @@ class PennyTestViewController: UIViewController {
} }
} }
@IBAction func proceed(_ sender: UIButton) { @IBAction func proceed(_ sender: UIButton) {
self.proceed() self.proceed()
} }
@IBAction func dismiss(_ sender: UIButton) { @IBAction func dismiss(_ sender: UIButton) {
self.navigationController?.popViewController(animated: true)
self.updatePennyTestCancelledStatus()
self.dismiss(animated: true, completion: nil)
} }
private func proceed() { private func proceed() {
@ -75,7 +74,7 @@ class PennyTestViewController: UIViewController {
self.initiate(userId: userId, success: { result in self.initiate(userId: userId, success: { result in
self.hideLoading() self.hideLoading()
UserDefaults.standard.set(result.message, forKey: AppConstants.pennyTestServerMessage) UserDefaults.standard.set(result.message, forKey: AppConstants.pennyTestServerMessage)
UserDefaults.standard.set(PennyTestStatusCode.requested, forKey: AppConstants.pennyTestStatusCode)
self.updatePennyTestRequestStatus()
let wireframe = PennyTestSubmitWireframe() let wireframe = PennyTestSubmitWireframe()
if let navigation = self.navigationController { if let navigation = self.navigationController {
wireframe.pushMainView(in: navigation) wireframe.pushMainView(in: navigation)
@ -86,6 +85,16 @@ class PennyTestViewController: UIViewController {
} }
} }
private func updatePennyTestRequestStatus() {
let _default = UserDefaults.standard
_default.set(PennyTestStatusCode.requested, forKey: AppConstants.pennyTestStatusCode)
}
private func updatePennyTestCancelledStatus() {
let _default = UserDefaults.standard
_default.set(PennyTestStatusCode.cancelled.rawValue, forKey: AppConstants.pennyTestStatusCode)
}
func showLoading() { func showLoading() {
self.showProgressHud() self.showProgressHud()
} }

20
GMERemittance/Utility/AppConstants.swift

@ -23,6 +23,7 @@ class AppConstants {
static let MainWireFrameNotificationName = "MainViewControllerSelect" static let MainWireFrameNotificationName = "MainViewControllerSelect"
static let pennyTestServerMessage = "pennyTestServerMessage" static let pennyTestServerMessage = "pennyTestServerMessage"
static let pennyTestStatusCode = "pennyTestStatusCode" static let pennyTestStatusCode = "pennyTestStatusCode"
static let pennyTestRequested = "pennyTestRequested"
} }
enum Devices { enum Devices {
@ -41,6 +42,7 @@ enum PennyTestStatusCode: String {
case notStarted = "0" case notStarted = "0"
case requested = "1" case requested = "1"
case completed = "2" case completed = "2"
case cancelled = "3"
} }
class Utility { class Utility {
@ -74,19 +76,31 @@ class Utility {
} }
static func didPennyTestRequested() -> Bool { static func didPennyTestRequested() -> Bool {
let val = (UserDefaults.standard.object(forKey: AppConstants.pennyTestStatusCode) as? String ) ?? "0" == "1"
let val = (UserDefaults.standard.object(forKey: AppConstants.pennyTestRequested) as? String ) ?? "0" == PennyTestStatusCode.requested.rawValue // 0 is false and "1" = true 2 = cancelled
return val
}
static func didPennyTestCancelled() -> Bool {
let val = (UserDefaults.standard.object(forKey: AppConstants.pennyTestStatusCode) as? String ) ?? "0" == PennyTestStatusCode.cancelled.rawValue
return val return val
} }
static func didPennyTestNotInitiated() -> Bool { static func didPennyTestNotInitiated() -> Bool {
let val = (UserDefaults.standard.object(forKey: AppConstants.pennyTestStatusCode) as? String ) ?? "0" == "0"
let val = (UserDefaults.standard.object(forKey: AppConstants.pennyTestStatusCode) as? String ) ?? PennyTestStatusCode.notStarted.rawValue == PennyTestStatusCode.notStarted.rawValue
return val return val
} }
static func shouldShowPennyTestError() -> Bool { static func shouldShowPennyTestError() -> Bool {
let val = (UserDefaults.standard.object(forKey: AppConstants.pennyTestStatusCode) as? String ) ?? "0" != "2"
let val = (UserDefaults.standard.object(forKey: AppConstants.pennyTestStatusCode) as? String ) ?? PennyTestStatusCode.notStarted.rawValue != PennyTestStatusCode.completed.rawValue
return val return val
} }
static func shouldShowPennyTestScreen() -> Bool {
let completed = (UserDefaults.standard.object(forKey: AppConstants.pennyTestStatusCode) as? String ) ?? PennyTestStatusCode.notStarted.rawValue == PennyTestStatusCode.completed.rawValue
let cancelled = Utility.didPennyTestCancelled()
let requested = Utility.didPennyTestRequested()
return !cancelled && !completed && !requested
}
static func getMyUserName() -> String { static func getMyUserName() -> String {

65
Pods/Pods.xcodeproj/xcuserdata/shishir.xcuserdatad/xcschemes/xcschememanagement.plist

@ -4,6 +4,11 @@
<dict> <dict>
<key>SchemeUserState</key> <key>SchemeUserState</key>
<dict> <dict>
<key>Alamofire 2.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>1</integer>
</dict>
<key>Alamofire.xcscheme</key> <key>Alamofire.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
@ -12,12 +17,12 @@
<key>AlamofireNetworkActivityLogger.xcscheme</key> <key>AlamofireNetworkActivityLogger.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>2</integer>
<integer>3</integer>
</dict> </dict>
<key>BRYXBanner.xcscheme</key> <key>BRYXBanner.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>4</integer>
<integer>5</integer>
</dict> </dict>
<key>Bolts.xcscheme</key> <key>Bolts.xcscheme</key>
<dict> <dict>
@ -34,6 +39,11 @@
<key>orderHint</key> <key>orderHint</key>
<integer>8</integer> <integer>8</integer>
</dict> </dict>
<key>FLAnimatedImage 2.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>2</integer>
</dict>
<key>FLAnimatedImage.xcscheme</key> <key>FLAnimatedImage.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
@ -52,62 +62,67 @@
<key>FirebaseAuth.xcscheme</key> <key>FirebaseAuth.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>9</integer>
<integer>6</integer>
</dict> </dict>
<key>FirebaseCore.xcscheme</key> <key>FirebaseCore.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>10</integer>
<integer>7</integer>
</dict> </dict>
<key>FirebaseMessaging.xcscheme</key> <key>FirebaseMessaging.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>11</integer>
<integer>8</integer>
</dict> </dict>
<key>GTMSessionFetcher.xcscheme</key> <key>GTMSessionFetcher.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>14</integer>
<integer>10</integer>
</dict> </dict>
<key>GoogleToolboxForMac.xcscheme</key> <key>GoogleToolboxForMac.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>13</integer>
<integer>9</integer>
</dict> </dict>
<key>Hex.xcscheme</key> <key>Hex.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>15</integer>
<integer>11</integer>
</dict> </dict>
<key>IQKeyboardManagerSwift.xcscheme</key> <key>IQKeyboardManagerSwift.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>16</integer>
<integer>12</integer>
</dict> </dict>
<key>LGSideMenuController.xcscheme</key> <key>LGSideMenuController.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>17</integer>
<integer>13</integer>
</dict> </dict>
<key>MBProgressHUD.xcscheme</key> <key>MBProgressHUD.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>18</integer>
<integer>14</integer>
</dict> </dict>
<key>ObjectMapper.xcscheme</key> <key>ObjectMapper.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>20</integer>
<integer>16</integer>
</dict> </dict>
<key>PMAlertController-PMAlertController.xcscheme</key> <key>PMAlertController-PMAlertController.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>22</integer>
<integer>18</integer>
</dict> </dict>
<key>PMAlertController.xcscheme</key> <key>PMAlertController.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>21</integer>
<integer>17</integer>
</dict>
<key>Pods-GME Remit.xcscheme</key>
<dict>
<key>orderHint</key>
<integer>19</integer>
</dict> </dict>
<key>Pods-GMERemittance.xcscheme</key> <key>Pods-GMERemittance.xcscheme</key>
<dict> <dict>
@ -117,27 +132,27 @@
<key>Pods-GMERemittanceTests.xcscheme</key> <key>Pods-GMERemittanceTests.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>24</integer>
<integer>20</integer>
</dict> </dict>
<key>Pods-GMERemittanceUITests.xcscheme</key> <key>Pods-GMERemittanceUITests.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>25</integer>
<integer>21</integer>
</dict> </dict>
<key>Protobuf.xcscheme</key> <key>Protobuf.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>26</integer>
<integer>22</integer>
</dict> </dict>
<key>RAMAnimatedTabBarController.xcscheme</key> <key>RAMAnimatedTabBarController.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>27</integer>
<integer>23</integer>
</dict> </dict>
<key>RSKImageCropper.xcscheme</key> <key>RSKImageCropper.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>28</integer>
<integer>24</integer>
</dict> </dict>
<key>ReadMoreTextView.xcscheme</key> <key>ReadMoreTextView.xcscheme</key>
<dict> <dict>
@ -147,32 +162,32 @@
<key>SDWebImage.xcscheme</key> <key>SDWebImage.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>29</integer>
<integer>25</integer>
</dict> </dict>
<key>SwiftyJSON.xcscheme</key> <key>SwiftyJSON.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>30</integer>
<integer>26</integer>
</dict> </dict>
<key>XLPagerTabStrip-XLPagerTabStrip.xcscheme</key> <key>XLPagerTabStrip-XLPagerTabStrip.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>33</integer>
<integer>29</integer>
</dict> </dict>
<key>XLPagerTabStrip.xcscheme</key> <key>XLPagerTabStrip.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>32</integer>
<integer>28</integer>
</dict> </dict>
<key>nanopb.xcscheme</key> <key>nanopb.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>19</integer>
<integer>15</integer>
</dict> </dict>
<key>thenPromise.xcscheme</key> <key>thenPromise.xcscheme</key>
<dict> <dict>
<key>orderHint</key> <key>orderHint</key>
<integer>31</integer>
<integer>27</integer>
</dict> </dict>
</dict> </dict>
</dict> </dict>

Loading…
Cancel
Save