diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard b/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard index 04b8ba8..4b0c66c 100644 --- a/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard +++ b/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard @@ -1,12 +1,12 @@ - + - - + + @@ -255,8 +255,8 @@ - - + + diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/BankAcctCell.swift b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/BankAcctCell.swift index 3f6f92d..cedf8bb 100644 --- a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/BankAcctCell.swift +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/BankAcctCell.swift @@ -10,6 +10,6 @@ import Foundation import WatchKit class BankAcctCell: NSObject { - @IBOutlet weak var BankNameLabel: WKInterfaceLabel! - @IBOutlet weak var Last4Label: WKInterfaceLabel! + @IBOutlet weak var bankNameLabel: WKInterfaceLabel! + @IBOutlet weak var last4Label: WKInterfaceLabel! } diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentDetailInterfaceController.swift b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentDetailInterfaceController.swift index c683c6f..2b3d33b 100644 --- a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentDetailInterfaceController.swift +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentDetailInterfaceController.swift @@ -16,6 +16,7 @@ class PaymentDetailInterfaceController: WKInterfaceController { var paymentButtonArmed: Bool = false var paymentAmount: Double = 0.0 var dictForBankAcct: [String: [BankAcct]] = [:] + var bankID: String = "" @IBOutlet weak var activityIndicator: WKInterfaceImage! @IBOutlet weak var activityIndicatorLabel: WKInterfaceLabel! @IBOutlet weak var contentGroup: WKInterfaceGroup! @@ -24,25 +25,17 @@ class PaymentDetailInterfaceController: WKInterfaceController { @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 @@ -61,7 +54,11 @@ class PaymentDetailInterfaceController: WKInterfaceController { let type: PaymentType = self.paymentAmount == self.selectedAccount?.curBalance ? .currentBal : .minimumDue // process this payment using default bank account (9999) until ability to change account is implemented - FetchData.submitPayment(for: alias, type: type, amount: self.paymentAmount, bankID: "9999") { confirmationNum, paymentID, error in + if let bankacct = UserDefaults.standard.dictionary(forKey: "default_bank_acct") as? [String: String] { + self.bankID = bankacct["bankID"] ?? "9999" + } + + FetchData.submitPayment(for: alias, type: type, amount: self.paymentAmount, bankID: self.bankID) { confirmationNum, paymentID, error in guard error == nil else { let dismiss = WKAlertAction(title: "Dismiss", style: .cancel, handler: {}) self.presentAlert(withTitle: "Error", message: "We were unable to process your payment at this time. Please try again later.", preferredStyle: .alert, actions: [dismiss]) @@ -87,7 +84,19 @@ class PaymentDetailInterfaceController: WKInterfaceController { } @IBAction func bankAccountsTapped() { - self.pushController(withName: "PaymentOptions", context: self.dictForBankAcct) + configureInterfaceObjects(true) + activityIndicator.configureForActivityIndicator() + 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.pushController(withName: "PaymentOptions", context: self.dictForBankAcct) + } + } override func willActivate() { @@ -109,14 +118,8 @@ class PaymentDetailInterfaceController: WKInterfaceController { paymentButton.setHidden(hide) payFrom.setHidden(hide) separate.setHidden(hide) - contentGroup.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) - } - }*/ + contentGroup.setHidden(hide) + activityIndicatorLabel.setVerticalAlignment(.center) + activityIndicatorLabel.setHidden(!hide) } } diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentOptionsInterfaceController.swift b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentOptionsInterfaceController.swift index c2b99eb..ee6af02 100644 --- a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentOptionsInterfaceController.swift +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentOptionsInterfaceController.swift @@ -36,19 +36,19 @@ class PaymentOptionsInterfaceController: WKInterfaceController { bankAcctTable.setNumberOfRows(bankAccts.count, withRowType: "bankAcctCell") for index in 0.. BankAcct? { - if let bank = UserDefaults.standard.value(forKey: "default_bank_acct") as? BankAcct { - return bank - } - - return nil - } -} diff --git a/SynchronyFinancial/SynchronyFinancial/UserDefaults+Extensions.swift b/SynchronyFinancial/SynchronyFinancial/UserDefaults+Extensions.swift new file mode 100644 index 0000000..6e63dcf --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial/UserDefaults+Extensions.swift @@ -0,0 +1,22 @@ +// +// UserDefaults+Extensions.swift +// SynchronyFinancial +// +// Created by Rahul Kantesaria on 4/8/19. +// Copyright © 2019 Alan Maynard. All rights reserved. +// + +import Foundation + +extension UserDefaults { + func setDefaultBankAccount(_ acct: BankAcct) { + UserDefaults.standard.set(acct, forKey: "default_bank_acct") + } + + func getDefaultBankAccount() -> BankAcct? { + if let bank = UserDefaults.standard.value(forKey: "default_bank_acct") as? BankAcct { + return bank + } + return nil + } +}