Skip to content

Commit ba0f348

Browse files
committed
chore: Unify AppStorage in StorageUtil
1 parent f875d2d commit ba0f348

File tree

8 files changed

+33
-22
lines changed

8 files changed

+33
-22
lines changed

BDKSwiftExampleWallet.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
779E70892DB9C9AB006E22D3 /* WalletFullScanScriptInspector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 779E70882DB9C9AB006E22D3 /* WalletFullScanScriptInspector.swift */; };
1717
77AD9F062DBB031D00182E65 /* ActivityHomeHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77AD9F052DBB031D00182E65 /* ActivityHomeHeaderView.swift */; };
1818
77F0FDC92DA9A93D00B30E4F /* Connection+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77F0FDC82DA9A93700B30E4F /* Connection+Extensions.swift */; };
19+
77F6A9E02DE23CA8003568F0 /* StorageUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77F6A9DF2DE23CA5003568F0 /* StorageUtil.swift */; };
1920
A733D6D02A81113000F333B4 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = A733D6CF2A81113000F333B4 /* Localizable.xcstrings */; };
2021
A73F7A362A3B778E00B87FC6 /* Int+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = A73F7A352A3B778E00B87FC6 /* Int+Extensions.swift */; };
2122
AE0C30F72A804A2D008F1EAE /* TransactionListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE0C30F62A804A2D008F1EAE /* TransactionListView.swift */; };
@@ -125,6 +126,7 @@
125126
779E70882DB9C9AB006E22D3 /* WalletFullScanScriptInspector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WalletFullScanScriptInspector.swift; sourceTree = "<group>"; };
126127
77AD9F052DBB031D00182E65 /* ActivityHomeHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityHomeHeaderView.swift; sourceTree = "<group>"; };
127128
77F0FDC82DA9A93700B30E4F /* Connection+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Connection+Extensions.swift"; sourceTree = "<group>"; };
129+
77F6A9DF2DE23CA5003568F0 /* StorageUtil.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StorageUtil.swift; sourceTree = "<group>"; };
128130
A733D6CF2A81113000F333B4 /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = "<group>"; };
129131
A73F7A352A3B778E00B87FC6 /* Int+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Int+Extensions.swift"; sourceTree = "<group>"; };
130132
AE0C30F62A804A2D008F1EAE /* TransactionListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransactionListView.swift; sourceTree = "<group>"; };
@@ -321,6 +323,7 @@
321323
AE1C34202A42441F008F807A /* Utilities */ = {
322324
isa = PBXGroup;
323325
children = (
326+
77F6A9DF2DE23CA5003568F0 /* StorageUtil.swift */,
324327
AE79538D2A2D59F000CCB277 /* Constants.swift */,
325328
AE2F255C2BED0BFB002A9AC6 /* AppError.swift */,
326329
);
@@ -734,6 +737,7 @@
734737
AE2381B52C60878E00F6B00C /* LocalOutputItemView.swift in Sources */,
735738
7745E1912DD7C47F00D52A40 /* BDKSyncService.swift in Sources */,
736739
AE3646262BEDB01200B04E25 /* FileManager+Extensions.swift in Sources */,
740+
77F6A9E02DE23CA8003568F0 /* StorageUtil.swift in Sources */,
737741
AEB6C9D12B7E8529003AD704 /* TransactionDetailViewModel.swift in Sources */,
738742
AEB159D32D51A7E00006AE9E /* BalanceDisplayFormat.swift in Sources */,
739743
AE18E9382A9528200019D2A4 /* Bundle+Extensions.swift in Sources */,

BDKSwiftExampleWallet/App/BDKSwiftExampleWalletApp.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import SwiftUI
1111
@main
1212
struct BDKSwiftExampleWalletApp: App {
1313
@AppStorage("isOnboarding") var isOnboarding: Bool = true
14-
@AppStorage("isNeedFullScan") var isNeedFullScan: Bool = false
1514
@State private var navigationPath = NavigationPath()
1615

1716
var body: some Scene {
@@ -40,7 +39,7 @@ struct BDKSwiftExampleWalletApp: App {
4039
}
4140
}
4241
.onChange(of: isOnboarding) { oldValue, newValue in
43-
isNeedFullScan = true
42+
StorageUtil.shared.isNeedFullScan = true
4443
navigationPath = NavigationPath()
4544
}
4645
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
//
2+
// AppStorage.swift
3+
// BDKSwiftExampleWallet
4+
//
5+
// Created by Rubens Machion on 24/05/25.
6+
//
7+
8+
import SwiftUI
9+
10+
struct StorageUtil {
11+
@AppStorage("isOnboarding") var isOnboarding: Bool?
12+
@AppStorage("isNeedFullScan") var isNeedFullScan: Bool?
13+
@AppStorage("balanceDisplayFormat") var balanceFormat: BalanceDisplayFormat =
14+
.bitcoinSats
15+
16+
static var shared = StorageUtil()
17+
}

BDKSwiftExampleWallet/View Model/OnboardingViewModel.swift

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@ enum WalletSyncType: Hashable {
2020
class OnboardingViewModel: ObservableObject {
2121

2222
private var bdkSyncService: BDKSyncService
23-
24-
@AppStorage("isOnboarding") var isOnboarding: Bool?
25-
@AppStorage("isNeedFullScan") var isNeedFullScan: Bool?
2623

2724
@Published var walletSyncType: WalletSyncType = .esplora {
2825
didSet {
@@ -100,10 +97,10 @@ class OnboardingViewModel: ObservableObject {
10097
do {
10198
try bdkSyncService.deleteWallet()
10299
try bdkSyncService.createWallet(params: words.isEmpty ? nil : words)
103-
isNeedFullScan = true
100+
StorageUtil.shared.isNeedFullScan = true
104101

105102
DispatchQueue.main.async {
106-
self.isOnboarding = false
103+
StorageUtil.shared.isOnboarding = false
107104
}
108105

109106
} catch let error as CreateWithPersistError {

BDKSwiftExampleWallet/View Model/Settings/SettingsViewModel.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import SwiftUI
1313
class SettingsViewModel: ObservableObject {
1414
let bdkClient: BDKClient
1515

16-
@AppStorage("isOnboarding") var isOnboarding: Bool = true
1716
@Published var esploraURL: String?
1817
@Published var inspectedScripts: UInt64 = 0
1918
@Published var network: String?
@@ -40,7 +39,7 @@ class SettingsViewModel: ObservableObject {
4039
func delete() {
4140
do {
4241
try bdkClient.deleteWallet()
43-
isOnboarding = true
42+
StorageUtil.shared.isOnboarding = true
4443
} catch {
4544
self.settingsError = .generic(message: error.localizedDescription)
4645
self.showingSettingsViewErrorAlert = true

BDKSwiftExampleWallet/View/HomeView.swift

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@
77

88
import SwiftUI
99

10-
struct HomeView: View {
11-
@AppStorage("isNeedFullScan") var isNeedFullScan: Bool?
12-
10+
struct HomeView: View {
1311
@Bindable var viewModel: HomeViewModel
1412
@Binding var navigationPath: NavigationPath
1513

@@ -21,7 +19,7 @@ struct HomeView: View {
2119
viewModel: .init(
2220
priceClient: .live,
2321
bdkSyncService: viewModel.bdkSyncService,
24-
isNeedFullScan: isNeedFullScan ?? false
22+
isNeedFullScan: StorageUtil.shared.isNeedFullScan ?? false
2523
),
2624
sendNavigationPath: $navigationPath
2725
)

BDKSwiftExampleWallet/View/OnboardingView.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ import BitcoinDevKit
99
import BitcoinUI
1010
import SwiftUI
1111

12-
struct OnboardingView: View {
13-
@AppStorage("isOnboarding") var isOnboarding: Bool?
12+
struct OnboardingView: View {
1413
@ObservedObject var viewModel: OnboardingViewModel
1514
@State private var showingOnboardingViewErrorAlert = false
1615
@State private var showingImportView = false

BDKSwiftExampleWallet/View/WalletView.swift

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@ import BitcoinUI
99
import SwiftUI
1010

1111
struct WalletView: View {
12-
@AppStorage("balanceDisplayFormat") private var balanceFormat: BalanceDisplayFormat =
13-
.bitcoinSats
14-
@AppStorage("isNeedFullScan") var isNeedFullScan: Bool?
12+
1513
@Bindable var viewModel: WalletViewModel
1614
@Binding var sendNavigationPath: NavigationPath
1715
@State private var isFirstAppear = true
@@ -30,14 +28,14 @@ struct WalletView: View {
3028
VStack(spacing: 20) {
3129

3230
BalanceView(
33-
format: balanceFormat,
31+
format: StorageUtil.shared.balanceFormat,
3432
balance: viewModel.balanceTotal,
3533
fiatPrice: viewModel.price
3634
).onTapGesture {
3735
withAnimation(.spring(response: 0.3, dampingFraction: 0.7)) {
38-
balanceFormat =
36+
StorageUtil.shared.balanceFormat =
3937
BalanceDisplayFormat.allCases[
40-
(balanceFormat.index + 1) % BalanceDisplayFormat.allCases.count
38+
(StorageUtil.shared.balanceFormat.index + 1) % BalanceDisplayFormat.allCases.count
4139
]
4240
}
4341
}
@@ -51,7 +49,7 @@ struct WalletView: View {
5149
needsFullScan: viewModel.isNeedFullScan
5250
) {
5351
// TODO: fix bug
54-
isNeedFullScan = false
52+
StorageUtil.shared.isNeedFullScan = false
5553
showAllTransactions = true
5654
}
5755

0 commit comments

Comments
 (0)