diff options
Diffstat (limited to 'Shared/ContributionWidgetContext.swift')
| -rw-r--r-- | Shared/ContributionWidgetContext.swift | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/Shared/ContributionWidgetContext.swift b/Shared/ContributionWidgetContext.swift index 2404698..33fed77 100644 --- a/Shared/ContributionWidgetContext.swift +++ b/Shared/ContributionWidgetContext.swift @@ -11,8 +11,11 @@ enum ContributionWidgetContextStore { private static let actorKey = "contributionWidget.actor" private static let enabledKey = "contributionWidget.enabled" - static func loadActor(defaults: UserDefaults? = sharedDefaults()) -> String? { - defaults?.string(forKey: actorKey) + static func loadActor( + accountID: String? = ActiveAccountContextStore.load(), + defaults: UserDefaults? = sharedDefaults() + ) -> String? { + defaults?.string(forKey: scopedActorKey(for: accountID)) } static func isEnabled(defaults: UserDefaults? = sharedDefaults()) -> Bool { @@ -24,13 +27,20 @@ enum ContributionWidgetContextStore { reloadWidgetTimelines() } - static func saveActor(_ actor: String, defaults: UserDefaults? = sharedDefaults()) { - defaults?.set(actor, forKey: actorKey) + static func saveActor( + _ actor: String, + accountID: String? = ActiveAccountContextStore.load(), + defaults: UserDefaults? = sharedDefaults() + ) { + defaults?.set(actor, forKey: scopedActorKey(for: accountID)) reloadWidgetTimelines() } - static func clear(defaults: UserDefaults? = sharedDefaults()) { - defaults?.removeObject(forKey: actorKey) + static func clear( + accountID: String? = ActiveAccountContextStore.load(), + defaults: UserDefaults? = sharedDefaults() + ) { + defaults?.removeObject(forKey: scopedActorKey(for: accountID)) reloadWidgetTimelines() } @@ -38,6 +48,11 @@ enum ContributionWidgetContextStore { UserDefaults(suiteName: HutchAppGroup.identifier) } + private static func scopedActorKey(for accountID: String?) -> String { + guard let accountID, !accountID.isEmpty else { return actorKey } + return "\(actorKey).\(accountID)" + } + private static func reloadWidgetTimelines() { #if canImport(WidgetKit) WidgetCenter.shared.reloadTimelines(ofKind: ContributionGraphWidgetConfiguration.kind) |
