From fe90d02ea84e724b8ce4e4512c95da76605c9bb9 Mon Sep 17 00:00:00 2001 From: Benjamin Hakes Date: Thu, 29 Dec 2022 16:21:55 -0600 Subject: [PATCH] fix bug updating default wallet --- damus/Models/UserSettingsStore.swift | 13 +++++++++---- damus/Models/Wallet.swift | 5 +++-- damus/Views/ConfigView.swift | 16 ++++++++-------- 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/damus/Models/UserSettingsStore.swift b/damus/Models/UserSettingsStore.swift index c153f580..7cd767ef 100644 --- a/damus/Models/UserSettingsStore.swift +++ b/damus/Models/UserSettingsStore.swift @@ -10,18 +10,23 @@ import Foundation class UserSettingsStore: ObservableObject { @Published var defaultWallet: Wallet { didSet { - UserDefaults.standard.set(defaultWallet.rawValue, forKey: "defaultwallet") + UserDefaults.standard.set(defaultWallet.rawValue, forKey: "default_wallet") } } @Published var showWalletSelector: Bool { didSet { - UserDefaults.standard.set(showWalletSelector, forKey: "showwalletselector") + UserDefaults.standard.set(showWalletSelector, forKey: "show_wallet_selector") } } init() { - self.defaultWallet = UserDefaults.standard.object(forKey: "defaultwallet") as? Wallet ?? .systemdefaultwallet - self.showWalletSelector = UserDefaults.standard.object(forKey: "showwalletselector") as? Bool ?? true + if let defaultWalletName = UserDefaults.standard.string(forKey: "default_wallet"), + let defaultWallet = Wallet(rawValue: defaultWalletName) { + self.defaultWallet = defaultWallet + } else { + self.defaultWallet = .systemdefaultwallet + } + self.showWalletSelector = UserDefaults.standard.object(forKey: "show_wallet_selector") as? Bool ?? true } } diff --git a/damus/Models/Wallet.swift b/damus/Models/Wallet.swift index a4ca0020..3ede2aea 100644 --- a/damus/Models/Wallet.swift +++ b/damus/Models/Wallet.swift @@ -7,8 +7,8 @@ import Foundation -// New url prefixes needed to be added to LSApplicationQueriesSchemes -enum Wallet: String, CaseIterable { +enum Wallet: String, CaseIterable, Identifiable { + var id: String { self.rawValue } struct Model: Identifiable, Hashable { var id: String { self.tag } @@ -20,6 +20,7 @@ enum Wallet: String, CaseIterable { var image: String } + // New url prefixes needed to be added to LSApplicationQueriesSchemes case systemdefaultwallet case strike case cashapp diff --git a/damus/Views/ConfigView.swift b/damus/Views/ConfigView.swift index 67611436..52a86a76 100644 --- a/damus/Views/ConfigView.swift +++ b/damus/Views/ConfigView.swift @@ -18,8 +18,8 @@ struct ConfigView: View { @State var privkey_copied: Bool = false @State var pubkey_copied: Bool = false @EnvironmentObject var user_settings: UserSettingsStore - - @State var walletModels: [Wallet.Model] = Wallet.allModels + + @State var allWallets: [Wallet] = Wallet.allCases let generator = UIImpactFeedbackGenerator(style: .light) @@ -83,13 +83,13 @@ struct ConfigView: View { Section("Wallet Selector") { Toggle("Show wallet selector", isOn: $user_settings.showWalletSelector).toggleStyle(.switch) - Picker(selection: $user_settings.defaultWallet, - label: Text("Select default wallet"), content: { - ForEach(walletModels) { wallet in - Text(wallet.displayName) - .tag(wallet.tag) + Picker("Select default wallet", + selection: $user_settings.defaultWallet) { + ForEach(allWallets, id: \.self) { wallet in + Text(wallet.model.displayName) + .tag(wallet.model.tag) } - }) + } } Section("Reset") {