Skip to content

Commit 3317d2b

Browse files
authored
refactor: client
1 parent 22ec08b commit 3317d2b

File tree

10 files changed

+288
-60
lines changed

10 files changed

+288
-60
lines changed

BDKSwiftExampleWallet.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
AE96F6622A424C400055623C /* BDKSwiftExampleWalletReceiveViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE96F6612A424C400055623C /* BDKSwiftExampleWalletReceiveViewModelTests.swift */; };
8484
AE97E74D2E315A8F000A407D /* AddressType+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE97E74C2E315A8F000A407D /* AddressType+Extensions.swift */; };
8585
AEA0A6272E297203008A525B /* BitcoinDevKit in Frameworks */ = {isa = PBXBuildFile; productRef = AEA0A6262E297203008A525B /* BitcoinDevKit */; };
86+
AEAA61BF2E380D62006ED2D0 /* Notification+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEAA61BE2E380D62006ED2D0 /* Notification+Extensions.swift */; };
8687
AEAB03112ABDDB86000C9528 /* FeeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEAB03102ABDDB86000C9528 /* FeeViewModel.swift */; };
8788
AEAB03132ABDDBF4000C9528 /* AmountViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEAB03122ABDDBF4000C9528 /* AmountViewModel.swift */; };
8889
AEAF83B62B7BD4D10019B23B /* CodeScanner in Frameworks */ = {isa = PBXBuildFile; productRef = AEAF83B52B7BD4D10019B23B /* CodeScanner */; };
@@ -189,6 +190,7 @@
189190
AE91CEEE2C0FDBC7000AAD20 /* CanonicalTx+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CanonicalTx+Extensions.swift"; sourceTree = "<group>"; };
190191
AE96F6612A424C400055623C /* BDKSwiftExampleWalletReceiveViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BDKSwiftExampleWalletReceiveViewModelTests.swift; sourceTree = "<group>"; };
191192
AE97E74C2E315A8F000A407D /* AddressType+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AddressType+Extensions.swift"; sourceTree = "<group>"; };
193+
AEAA61BE2E380D62006ED2D0 /* Notification+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Notification+Extensions.swift"; sourceTree = "<group>"; };
192194
AEAB03102ABDDB86000C9528 /* FeeViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeeViewModel.swift; sourceTree = "<group>"; };
193195
AEAB03122ABDDBF4000C9528 /* AmountViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AmountViewModel.swift; sourceTree = "<group>"; };
194196
AEB130C82A44E4850087785B /* TransactionDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransactionDetailView.swift; sourceTree = "<group>"; };
@@ -293,6 +295,7 @@
293295
AE7F67062A744CE200CED561 /* Double+Extensions.swift */,
294296
AEB159D42D51A8680006AE9E /* View+Extensions.swift */,
295297
AE8D001B2D19F1760029C4C9 /* UIScreen+Extensions.swift */,
298+
AEAA61BE2E380D62006ED2D0 /* Notification+Extensions.swift */,
296299
AEE6C74D2ABCB48600442ADD /* BDK+Extensions */,
297300
);
298301
path = Extensions;
@@ -745,6 +748,7 @@
745748
AEB130C92A44E4850087785B /* TransactionDetailView.swift in Sources */,
746749
AE287E772C0F6D200036A748 /* Array+Extensions.swift in Sources */,
747750
AE6715FD2A9AC056005C193F /* PriceServiceError.swift in Sources */,
751+
AEAA61BF2E380D62006ED2D0 /* Notification+Extensions.swift in Sources */,
748752
AE34DDAC2B6B31ED00F04AD4 /* WalletRecoveryView.swift in Sources */,
749753
AE2ADD742B61E8F500C2A823 /* SettingsView.swift in Sources */,
750754
AE2381AF2C605B1D00F6B00C /* ActivityListViewModel.swift in Sources */,

BDKSwiftExampleWallet/App/BDKSwiftExampleWalletApp.swift

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,16 @@ import SwiftUI
1212
struct BDKSwiftExampleWalletApp: App {
1313
@AppStorage("isOnboarding") var isOnboarding: Bool = true
1414
@State private var navigationPath = NavigationPath()
15+
@State private var refreshTrigger = UUID()
1516

1617
var body: some Scene {
1718
WindowGroup {
1819
NavigationStack(path: $navigationPath) {
19-
let value = try? KeyClient.live.getBackupInfo()
20-
if isOnboarding && (value == nil) {
21-
OnboardingView(viewModel: .init(bdkClient: .live))
22-
} else if !isOnboarding && (value == nil) {
20+
if !walletExists {
2321
OnboardingView(viewModel: .init(bdkClient: .live))
22+
.onReceive(NotificationCenter.default.publisher(for: .walletCreated)) { _ in
23+
refreshTrigger = UUID()
24+
}
2425
} else {
2526
HomeView(viewModel: .init(bdkClient: .live), navigationPath: $navigationPath)
2627
}
@@ -32,3 +33,12 @@ struct BDKSwiftExampleWalletApp: App {
3233
}
3334
}
3435
}
36+
37+
extension BDKSwiftExampleWalletApp {
38+
private var walletExists: Bool {
39+
// Force re-evaluation by reading refreshTrigger and isOnboarding
40+
let _ = refreshTrigger
41+
let _ = isOnboarding
42+
return (try? KeyClient.live.getBackupInfo()) != nil
43+
}
44+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
//
2+
// Notification+Extensions.swift
3+
// BDKSwiftExampleWallet
4+
//
5+
// Created by Matthew Ramsden on 7/28/25.
6+
//
7+
8+
import Foundation
9+
10+
extension Notification.Name {
11+
static let walletCreated = Notification.Name("walletCreated")
12+
}

BDKSwiftExampleWallet/Resources/Localizable.xcstrings

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
{
22
"sourceLanguage" : "en",
33
"strings" : {
4+
" High • %lld" : {
5+
6+
},
47
" High Priority - %lld" : {
58
"extractionState" : "stale",
69
"localizations" : {
@@ -18,7 +21,7 @@
1821
}
1922
}
2023
},
21-
" High: %lld" : {
24+
" Low • %lld" : {
2225

2326
},
2427
" Low Priority - %lld" : {
@@ -37,9 +40,6 @@
3740
}
3841
}
3942
}
40-
},
41-
" Low: %lld" : {
42-
4343
},
4444
" Med Priority - %lld" : {
4545
"extractionState" : "stale",
@@ -57,6 +57,9 @@
5757
}
5858
}
5959
}
60+
},
61+
" Medium • %lld" : {
62+
6063
},
6164
" No Priority - %lld" : {
6265
"extractionState" : "stale",
@@ -75,7 +78,7 @@
7578
}
7679
}
7780
},
78-
" None: %lld" : {
81+
" None %lld" : {
7982

8083
},
8184
"- %llu sats" : {
@@ -532,6 +535,9 @@
532535
}
533536
}
534537
}
538+
},
539+
"Creating..." : {
540+
535541
},
536542
"Danger Zone" : {
537543
"localizations" : {
@@ -665,8 +671,12 @@
665671
}
666672
}
667673
}
674+
},
675+
"Fee Priority" : {
676+
668677
},
669678
"Fees" : {
679+
"extractionState" : "stale",
670680
"localizations" : {
671681
"fr" : {
672682
"stringUnit" : {
@@ -723,9 +733,6 @@
723733
}
724734
}
725735
}
726-
},
727-
"Med: %lld" : {
728-
729736
},
730737
"Navigation Title" : {
731738
"extractionState" : "stale",
@@ -923,8 +930,12 @@
923930
}
924931
}
925932
}
933+
},
934+
"powered by BDK" : {
935+
926936
},
927937
"powered by Bitcoin Dev Kit" : {
938+
"extractionState" : "stale",
928939
"localizations" : {
929940
"pt-BR" : {
930941
"stringUnit" : {

0 commit comments

Comments
 (0)