From 0b6fb6702aa2ee1e15670747a1b81dde982d2e0a Mon Sep 17 00:00:00 2001 From: Rahul Kantesaria Date: Sat, 6 Apr 2019 15:54:57 -0400 Subject: [PATCH] SWF-13 able to choose bank that user would like to pay for. No passing of account info, just able to display chosen bank name --- .../Base.lproj/Interface.storyboard | 4 ++ .../PaymentDetailInterfaceController.swift | 40 ++++++++++++++----- .../PaymentOptionsInterfaceController.swift | 7 ++++ 3 files changed, 41 insertions(+), 10 deletions(-) diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard b/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard index 6683c36..eae2ceb 100644 --- a/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard +++ b/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard @@ -201,6 +201,7 @@ + + + + diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentDetailInterfaceController.swift b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentDetailInterfaceController.swift index c2513af..d22dfa0 100644 --- a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentDetailInterfaceController.swift +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentDetailInterfaceController.swift @@ -16,33 +16,36 @@ class PaymentDetailInterfaceController: WKInterfaceController { var paymentButtonArmed: Bool = false var paymentAmount: Double = 0.0 var dictForBankAcct: [String:[BankAcct]] = [:] - + @IBOutlet var activityIndicator: WKInterfaceImage! @IBOutlet weak var detailButton: WKInterfaceButton! @IBOutlet weak var amount: WKInterfaceLabel! @IBOutlet weak var paymentButton: WKInterfaceButton! + @IBOutlet weak var payFrom: WKInterfaceLabel! + @IBOutlet weak var separate: WKInterfaceSeparator! override func awake(withContext context: Any?) { + configureInterfaceObjects(true) + activityIndicator.configureForActivityIndicator() super.awake(withContext: context) guard let data = context as? [String: Any], let acct = data["acct"] as? Account, let amount = data["payment_amount"] as? Double else { NSLog("Error getting account object and payment amount") return } + FetchData.getBankInfo{ accts, error in guard error == nil else { NSLog("Error retrieving payment methods for account in paymentDetailInterfaceController.") return } - self.dictForBankAcct.updateValue(accts, forKey: "paymentOptions") - + self.configureInterfaceObjects(false) + //self.detailButton.setTitle("Hello") + self.activityIndicator.stopAnimatingAsIndicator() } self.paymentAmount = amount self.selectedAccount = acct paymentButton.setTitle(String(format: "Pay $%.2f", amount)) - if let p1 = self.dictForBankAcct["paymentOptions"] { - UserDefaults.standard.set(p1[0], forKey: "default_bank_acct") - print("yes") - self.detailButton.setTitle(p1[0].bankName) - } + + } @IBAction func paymentAction() { @@ -66,9 +69,10 @@ class PaymentDetailInterfaceController: WKInterfaceController { override func willActivate() { // This method is called when watch view controller is about to be visible to user super.willActivate() - if let bankacct = UserDefaults.standard.value(forKey: "default_bank_acct") as? BankAcct { - detailButton.setTitle(bankacct.bankName) + if let bankacct = UserDefaults.standard.string(forKey: "default_bank_acct"){ + detailButton.setTitle(bankacct) } + print("hots here") } override func didDeactivate() { @@ -76,4 +80,20 @@ class PaymentDetailInterfaceController: WKInterfaceController { super.didDeactivate() } + private func configureInterfaceObjects(_ hide: Bool) { + detailButton.setHidden(hide) + amount.setHidden(hide) + paymentButton.setHidden(hide) + payFrom.setHidden(hide) + separate.setHidden(hide) + /*if(!hide){ + if let p1 = self.dictForBankAcct["paymentOptions"] { + let x = p1[0] + UserDefaults.standard.set(x, forKey: "default_bank_acct") + print("yes") + detailButton.setTitle(p1[0].bankName) + } + }*/ + } + } diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentOptionsInterfaceController.swift b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentOptionsInterfaceController.swift index d3013df..e0c5389 100644 --- a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentOptionsInterfaceController.swift +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentOptionsInterfaceController.swift @@ -24,6 +24,7 @@ class PaymentOptionsInterfaceController: WKInterfaceController { bankAccts = accts print(bankAccts.count) configureRows() + } override func willActivate() { // This method is called when watch view controller is about to be visible to user @@ -42,4 +43,10 @@ class PaymentOptionsInterfaceController: WKInterfaceController { } } } + + override func table(_ table: WKInterfaceTable, didSelectRowAt rowIndex: Int) { + let acct = bankAccts[rowIndex] + UserDefaults.standard.set(acct.bankName, forKey: "default_bank_acct") + pop() + } }