From 7eb407c77a27ce93fc34a6b4ba30e6799c7429bb Mon Sep 17 00:00:00 2001 From: Alan Maynard Date: Wed, 13 Mar 2019 16:48:25 -0400 Subject: [PATCH 1/6] SWF-12 set up pay bill button and new class --- .../Base.lproj/Interface.storyboard | 18 +++++++++-- .../AccountDetailsInterfaceController.swift | 8 +++++ .../PayBillInterfaceController.swift | 31 +++++++++++++++++++ .../project.pbxproj | 6 ++++ 4 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 SynchronyFinancial/SynchronyFinancial WatchKit Extension/PayBillInterfaceController.swift diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard b/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard index d2f0a7a..c12dbb9 100644 --- a/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard +++ b/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard @@ -1,12 +1,12 @@ - + - - + + @@ -125,6 +125,11 @@ diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/AccountDetailsInterfaceController.swift b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/AccountDetailsInterfaceController.swift index cacf7c1..8c50b12 100644 --- a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/AccountDetailsInterfaceController.swift +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/AccountDetailsInterfaceController.swift @@ -39,6 +39,14 @@ class AccountDetailsInterfaceController: WKInterfaceController { super.didDeactivate() } + override func contextForSegue(withIdentifier segueIdentifier: String) -> Any? { + if segueIdentifier == "payBill" { + print("button was tapped") + } + + return nil + } + private func configureForAccount() { guard selectedAccount != nil, let acct = selectedAccount else { NSLog("Error configuring AccountDetails. selectedAccount is nil") diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PayBillInterfaceController.swift b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PayBillInterfaceController.swift new file mode 100644 index 0000000..8437066 --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PayBillInterfaceController.swift @@ -0,0 +1,31 @@ +// +// PayBillInterfaceController.swift +// SynchronyFinancial +// +// Created by Alan Maynard on 3/13/19. +// Copyright © 2019 Alan Maynard. All rights reserved. +// + +import WatchKit +import Foundation + + +class PayBillInterfaceController: WKInterfaceController { + + override func awake(withContext context: Any?) { + super.awake(withContext: context) + + // Configure interface objects here. + } + + override func willActivate() { + // This method is called when watch view controller is about to be visible to user + super.willActivate() + } + + override func didDeactivate() { + // This method is called when watch view controller is no longer visible + super.didDeactivate() + } + +} diff --git a/SynchronyFinancial/SynchronyFinancial.xcodeproj/project.pbxproj b/SynchronyFinancial/SynchronyFinancial.xcodeproj/project.pbxproj index 4cfb02f..e4a27b8 100644 --- a/SynchronyFinancial/SynchronyFinancial.xcodeproj/project.pbxproj +++ b/SynchronyFinancial/SynchronyFinancial.xcodeproj/project.pbxproj @@ -17,6 +17,8 @@ 48F2430F2214CC2200B9C894 /* Transaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48F2430C2214CBF700B9C894 /* Transaction.swift */; }; 673F396E21A644570051469E /* MainMenuInterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 673F396C21A644460051469E /* MainMenuInterfaceController.swift */; }; 673F397021A652A00051469E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 673F396F21A652A00051469E /* Assets.xcassets */; }; + 674BD1532239A39D0076AFD6 /* PayBillInterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 674BD1522239A39D0076AFD6 /* PayBillInterfaceController.swift */; }; + 674BD1542239A39D0076AFD6 /* PayBillInterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 674BD1522239A39D0076AFD6 /* PayBillInterfaceController.swift */; }; 678C38842230950100FEAAF6 /* AccountDetailsInterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 678C38832230950100FEAAF6 /* AccountDetailsInterfaceController.swift */; }; 678C3885223098C400FEAAF6 /* Account.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48F2430B2214CBF700B9C894 /* Account.swift */; }; 678C388622309F7D00FEAAF6 /* AccountCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48DA0057221D12E70081A500 /* AccountCell.swift */; }; @@ -85,6 +87,7 @@ 4EA10823B2E5A7A4FEF31740 /* libPods-SynchronyFinancial WatchKit App.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-SynchronyFinancial WatchKit App.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 673F396C21A644460051469E /* MainMenuInterfaceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainMenuInterfaceController.swift; sourceTree = ""; }; 673F396F21A652A00051469E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 674BD1522239A39D0076AFD6 /* PayBillInterfaceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PayBillInterfaceController.swift; sourceTree = ""; }; 678C38832230950100FEAAF6 /* AccountDetailsInterfaceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountDetailsInterfaceController.swift; sourceTree = ""; }; 67BAC265219E254700713FEF /* SynchronyFinancial.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SynchronyFinancial.app; sourceTree = BUILT_PRODUCTS_DIR; }; 67BAC268219E254700713FEF /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; @@ -183,6 +186,7 @@ 67BAC28A219E254900713FEF /* SynchronyFinancial WatchKit Extension */ = { isa = PBXGroup; children = ( + 674BD1522239A39D0076AFD6 /* PayBillInterfaceController.swift */, 673F396C21A644460051469E /* MainMenuInterfaceController.swift */, 67BAC28D219E254900713FEF /* ExtensionDelegate.swift */, 48F243062214C98600B9C894 /* AccountTableInterfaceController.swift */, @@ -440,6 +444,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 674BD1532239A39D0076AFD6 /* PayBillInterfaceController.swift in Sources */, 48F2430D2214CBF700B9C894 /* Account.swift in Sources */, 678C388622309F7D00FEAAF6 /* AccountCell.swift in Sources */, 48F2430E2214CBF700B9C894 /* Transaction.swift in Sources */, @@ -454,6 +459,7 @@ files = ( 678C3885223098C400FEAAF6 /* Account.swift in Sources */, 67BAC28E219E254900713FEF /* ExtensionDelegate.swift in Sources */, + 674BD1542239A39D0076AFD6 /* PayBillInterfaceController.swift in Sources */, 678C38842230950100FEAAF6 /* AccountDetailsInterfaceController.swift in Sources */, 673F396E21A644570051469E /* MainMenuInterfaceController.swift in Sources */, 48F243072214C98600B9C894 /* AccountTableInterfaceController.swift in Sources */, From e8c3eb377e21b0f2966855862c6c92db8a3a0cef Mon Sep 17 00:00:00 2001 From: Alan Maynard Date: Wed, 13 Mar 2019 16:53:25 -0400 Subject: [PATCH 2/6] SWF-12 added interface objects --- .../Base.lproj/Interface.storyboard | 15 ++++++++++++++- .../PayBillInterfaceController.swift | 5 +++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard b/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard index c12dbb9..5cbe21d 100644 --- a/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard +++ b/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard @@ -144,7 +144,20 @@ - + + + @@ -142,24 +142,24 @@ - + - + - @@ -161,5 +169,29 @@ + + + + + + + + + + + + + + + + + + diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentDetailInterfaceController.swift b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentDetailInterfaceController.swift new file mode 100644 index 0000000..e12b486 --- /dev/null +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentDetailInterfaceController.swift @@ -0,0 +1,54 @@ +// +// PaymentDetailInterfaceController.swift +// SynchronyFinancial +// +// Created by Monday on 2019/03/24. +// Copyright © 2019 Alan Maynard. All rights reserved. +// + +import WatchKit +import Foundation + + +class PaymentDetailInterfaceController: WKInterfaceController { + var selectedAccount: Account? + var dictForAcct: [String: Account] = [:] + + @IBOutlet weak var detailButton: WKInterfaceButton! + @IBOutlet weak var amount: WKInterfaceLabel! + + @IBAction func paymentButton() { + } + override func awake(withContext context: Any?) { + super.awake(withContext: context) + + // Configure interface objects here. + } + + override func contextForSegue(withIdentifier segueIdentifier: String) -> Any? { + if (segueIdentifier == "PayAll" || segueIdentifier == "PayMinimum"){ + if let acct = selectedAccount { + dictForAcct.updateValue(acct, forKey: "acct") + return dictForAcct + } + } + return nil + } + + override func willActivate() { + // This method is called when watch view controller is about to be visible to user + super.willActivate() + } + + override func didDeactivate() { + // This method is called when watch view controller is no longer visible + super.didDeactivate() + } + private func configure() { + //if acct { + detailButton.setTitle("Payment: Bank Of America") + amount.setText("") + paymentButton.setTitle("Pay now!") + //} + } +} diff --git a/SynchronyFinancial/SynchronyFinancial.xcodeproj/project.pbxproj b/SynchronyFinancial/SynchronyFinancial.xcodeproj/project.pbxproj index e4a27b8..4ee8584 100644 --- a/SynchronyFinancial/SynchronyFinancial.xcodeproj/project.pbxproj +++ b/SynchronyFinancial/SynchronyFinancial.xcodeproj/project.pbxproj @@ -8,6 +8,8 @@ /* Begin PBXBuildFile section */ 281283568A34D3C5D9C7B383 /* libPods-SynchronyFinancial WatchKit Extension.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CAA6D46F907ADAABF49FD409 /* libPods-SynchronyFinancial WatchKit Extension.a */; }; + 481864A8224802BB0059CF7A /* PaymentDetailInterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 481864A7224802BB0059CF7A /* PaymentDetailInterfaceController.swift */; }; + 481864A9224802BB0059CF7A /* PaymentDetailInterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 481864A7224802BB0059CF7A /* PaymentDetailInterfaceController.swift */; }; 48DA0058221D12E70081A500 /* AccountCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48DA0057221D12E70081A500 /* AccountCell.swift */; }; 48F243072214C98600B9C894 /* AccountTableInterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48F243062214C98600B9C894 /* AccountTableInterfaceController.swift */; }; 48F243082214CA9600B9C894 /* AccountTableInterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48F243062214C98600B9C894 /* AccountTableInterfaceController.swift */; }; @@ -80,6 +82,7 @@ 1BEF4B8BF190D117CA6104E5 /* Pods-SynchronyFinancial WatchKit App.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SynchronyFinancial WatchKit App.release.xcconfig"; path = "Pods/Target Support Files/Pods-SynchronyFinancial WatchKit App/Pods-SynchronyFinancial WatchKit App.release.xcconfig"; sourceTree = ""; }; 250BDAF6AD4E1CCA82995E30 /* Pods-SynchronyFinancial WatchKit Extension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SynchronyFinancial WatchKit Extension.release.xcconfig"; path = "Pods/Target Support Files/Pods-SynchronyFinancial WatchKit Extension/Pods-SynchronyFinancial WatchKit Extension.release.xcconfig"; sourceTree = ""; }; 396A16E056D05DEC937A07DA /* Pods-SynchronyFinancial.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SynchronyFinancial.release.xcconfig"; path = "Pods/Target Support Files/Pods-SynchronyFinancial/Pods-SynchronyFinancial.release.xcconfig"; sourceTree = ""; }; + 481864A7224802BB0059CF7A /* PaymentDetailInterfaceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentDetailInterfaceController.swift; sourceTree = ""; }; 48DA0057221D12E70081A500 /* AccountCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountCell.swift; sourceTree = ""; }; 48F243062214C98600B9C894 /* AccountTableInterfaceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountTableInterfaceController.swift; sourceTree = ""; }; 48F2430B2214CBF700B9C894 /* Account.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Account.swift; sourceTree = ""; }; @@ -187,6 +190,7 @@ isa = PBXGroup; children = ( 674BD1522239A39D0076AFD6 /* PayBillInterfaceController.swift */, + 481864A7224802BB0059CF7A /* PaymentDetailInterfaceController.swift */, 673F396C21A644460051469E /* MainMenuInterfaceController.swift */, 67BAC28D219E254900713FEF /* ExtensionDelegate.swift */, 48F243062214C98600B9C894 /* AccountTableInterfaceController.swift */, @@ -447,6 +451,7 @@ 674BD1532239A39D0076AFD6 /* PayBillInterfaceController.swift in Sources */, 48F2430D2214CBF700B9C894 /* Account.swift in Sources */, 678C388622309F7D00FEAAF6 /* AccountCell.swift in Sources */, + 481864A8224802BB0059CF7A /* PaymentDetailInterfaceController.swift in Sources */, 48F2430E2214CBF700B9C894 /* Transaction.swift in Sources */, 67BAC269219E254700713FEF /* AppDelegate.swift in Sources */, 48F243082214CA9600B9C894 /* AccountTableInterfaceController.swift in Sources */, @@ -465,6 +470,7 @@ 48F243072214C98600B9C894 /* AccountTableInterfaceController.swift in Sources */, 48F2430F2214CC2200B9C894 /* Transaction.swift in Sources */, 48DA0058221D12E70081A500 /* AccountCell.swift in Sources */, + 481864A9224802BB0059CF7A /* PaymentDetailInterfaceController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; From b8d1b8112d6fac4c3c341e79d812bf5047467e2a Mon Sep 17 00:00:00 2001 From: Alan Maynard Date: Thu, 28 Mar 2019 17:47:20 -0400 Subject: [PATCH 5/6] SWF-12 Update navigation --- .../Base.lproj/Interface.storyboard | 17 ++++++++--------- .../AccountTableInterfaceController.swift | 6 ++++++ 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard b/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard index 31d93dc..28bb61d 100644 --- a/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard +++ b/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard @@ -100,7 +100,6 @@ - @@ -113,10 +112,10 @@ - + - + - + @@ -168,7 +167,7 @@ - + @@ -190,12 +189,12 @@ - + - + - + @@ -219,7 +218,7 @@ - + diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/AccountTableInterfaceController.swift b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/AccountTableInterfaceController.swift index baa7b73..b72e5f9 100644 --- a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/AccountTableInterfaceController.swift +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/AccountTableInterfaceController.swift @@ -12,6 +12,7 @@ import Foundation class AccountTableInterfaceController: WKInterfaceController { var accounts: [Account] = [] var acctDict: [String: Account] = [:] + var transactionDict: [String: [Transaction]] = [:] @IBOutlet weak var accountTable: WKInterfaceTable! override func awake(withContext context: Any?) { @@ -41,6 +42,11 @@ class AccountTableInterfaceController: WKInterfaceController { return nil } + override func table(_ table: WKInterfaceTable, didSelectRowAt rowIndex: Int) { + acctDict.updateValue(accounts[rowIndex], forKey: "acct") + self.presentController(withNames: ["AccountDetails", "Transactions"], contexts: [self.acctDict, self.transactionDict]) + } + private func configureRows() { accountTable.setNumberOfRows(accounts.count, withRowType: "account") From b75f5ca40fc5f9a39b7a00250216e06e0001e3dd Mon Sep 17 00:00:00 2001 From: Alan Maynard Date: Thu, 28 Mar 2019 19:53:56 -0400 Subject: [PATCH 6/6] SWF-12 changes to support payment suite - had to abandon page based navigation in favor of being able to use push segues throughout payment suite - put a button in place to allow viewing transactions - implemented data passing through payment suite and button functionality to simulate authorizing payment --- .../Base.lproj/Interface.storyboard | 57 +++++++++++++------ .../AccountDetailsInterfaceController.swift | 12 +++- .../AccountTableInterfaceController.swift | 3 +- .../PayBillInterfaceController.swift | 15 ++++- .../PaymentDetailInterfaceController.swift | 35 +++++++----- 5 files changed, 86 insertions(+), 36 deletions(-) diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard b/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard index 28bb61d..d1254a2 100644 --- a/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard +++ b/SynchronyFinancial/SynchronyFinancial WatchKit App/Base.lproj/Interface.storyboard @@ -124,18 +124,29 @@ - + + @@ -146,16 +157,20 @@ - @@ -172,13 +187,21 @@ - + - + + + + @@ -222,6 +245,6 @@ - + diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/AccountDetailsInterfaceController.swift b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/AccountDetailsInterfaceController.swift index a33a0f7..2019c6a 100644 --- a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/AccountDetailsInterfaceController.swift +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/AccountDetailsInterfaceController.swift @@ -13,14 +13,24 @@ class AccountDetailsInterfaceController: WKInterfaceController { var selectedAccount: Account? var dictForAcct: [String: Account] = [:] + @IBOutlet weak var transactionsButton: WKInterfaceButton! + @IBOutlet weak var payButton: WKInterfaceButton! @IBOutlet weak var balanceLabel: WKInterfaceLabel! @IBOutlet weak var availableFundsLabel: WKInterfaceLabel! @IBOutlet weak var accountNameLabel: WKInterfaceLabel! @IBOutlet weak var nextPaymentDueLabel: WKInterfaceLabel! + @IBAction func payBillTapped() { + if let acct = selectedAccount { + dictForAcct.updateValue(acct, forKey: "acct") + } + pushController(withName: "PayMinimum", context: dictForAcct) + } + override func awake(withContext context: Any?) { super.awake(withContext: context) - + payButton.setWidth(self.contentFrame.width / 2) + transactionsButton.setWidth(self.contentFrame.width / 2) guard let data = context as? [String: Account] else { NSLog("Error receiving context containing selected account in AccountDetailInterfaceController") return diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/AccountTableInterfaceController.swift b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/AccountTableInterfaceController.swift index b72e5f9..9f5694c 100644 --- a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/AccountTableInterfaceController.swift +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/AccountTableInterfaceController.swift @@ -44,7 +44,8 @@ class AccountTableInterfaceController: WKInterfaceController { override func table(_ table: WKInterfaceTable, didSelectRowAt rowIndex: Int) { acctDict.updateValue(accounts[rowIndex], forKey: "acct") - self.presentController(withNames: ["AccountDetails", "Transactions"], contexts: [self.acctDict, self.transactionDict]) + self.pushController(withName: "AccountDetails", context: self.acctDict) +// self.presentController(withNames: ["AccountDetails", "Transactions"], contexts: [self.acctDict, self.transactionDict]) } private func configureRows() { diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PayBillInterfaceController.swift b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PayBillInterfaceController.swift index c20d261..c9b4b1f 100644 --- a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PayBillInterfaceController.swift +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PayBillInterfaceController.swift @@ -11,6 +11,7 @@ import Foundation class PayBillInterfaceController: WKInterfaceController { var acct: Account? + var payDict: [String: Any] = [:] @IBOutlet weak var balanceLabel: WKInterfaceLabel! @IBOutlet weak var payBalanceButton: WKInterfaceButton! @@ -40,13 +41,23 @@ class PayBillInterfaceController: WKInterfaceController { super.didDeactivate() } + override func contextForSegue(withIdentifier segueIdentifier: String) -> Any? { + if segueIdentifier == "PayMinimum" { + payDict.updateValue(Double(acct?.minimumPayment ?? 0.0), forKey: "payment_amount") + } else if segueIdentifier == "PayAll" { + payDict.updateValue(Double(acct?.balance ?? 0.0), forKey: "payment_amount") + } + return payDict + } + private func configure() { if let valid = acct { - let balanceFormatted = String(format: "%.2f", valid.balance) + payDict.updateValue(valid, forKey: "acct") + let balanceFormatted = String(format: "$%.2f", valid.balance) balanceLabel.setText("Balance: \(balanceFormatted)") payBalanceButton.setTitle("Pay \(balanceFormatted)") - let minimumFormatted = String(format: "%.2f", valid.minimumPayment) + let minimumFormatted = String(format: "$%.2f", valid.minimumPayment) minimumLabel.setText("Minimum Payment: \(minimumFormatted)") payMinimumButton.setTitle("Pay \(minimumFormatted)") } diff --git a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentDetailInterfaceController.swift b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentDetailInterfaceController.swift index f7c6d13..30ed7b8 100644 --- a/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentDetailInterfaceController.swift +++ b/SynchronyFinancial/SynchronyFinancial WatchKit Extension/PaymentDetailInterfaceController.swift @@ -12,6 +12,8 @@ import Foundation class PaymentDetailInterfaceController: WKInterfaceController { var selectedAccount: Account? var dictForAcct: [String: Account] = [:] + var paymentButtonArmed: Bool = false + var paymentAmount: Double = 0.0 @IBOutlet weak var detailButton: WKInterfaceButton! @IBOutlet weak var amount: WKInterfaceLabel! @@ -19,18 +21,28 @@ class PaymentDetailInterfaceController: WKInterfaceController { override func awake(withContext context: Any?) { 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 + } - // Configure interface objects here. + self.paymentAmount = amount + self.selectedAccount = acct + paymentButton.setTitle(String(format: "Pay $%.2f", amount)) } - override func contextForSegue(withIdentifier segueIdentifier: String) -> Any? { - if segueIdentifier == "PayAll" || segueIdentifier == "PayMinimum" { - if let acct = selectedAccount { - dictForAcct.updateValue(acct, forKey: "acct") - return dictForAcct - } + @IBAction func paymentAction() { + if paymentButtonArmed { + popToRootController() + } else { +// animate(withDuration: 0.75) { +// self.paymentButton.setBackgroundColor(UIColor.init(red: 141, green: 241, blue: 48, alpha: 1.0)) +// } + + paymentButton.setBackgroundColor(#colorLiteral(red: 0.6092301607, green: 0.9366738796, blue: 0.2432599962, alpha: 1)) + paymentButtonArmed = true + paymentButton.setTitle("Pay Now") } - return nil } override func willActivate() { @@ -42,11 +54,4 @@ class PaymentDetailInterfaceController: WKInterfaceController { // This method is called when watch view controller is no longer visible super.didDeactivate() } - private func configure() { - //if acct { - detailButton.setTitle("Payment: Bank Of America") - amount.setText("") - paymentButton.setTitle("Pay now!") - //} - } }