Files
ios/Unstoppable/Widget/Misc/SharedLocalStorage.swift
EA 9d02421f08 Extract whole app codebase to WalletCore package
- remove dependency of Widget and Intent extensions from app codebase
2026-05-29 17:48:52 +06:00

30 lines
732 B
Swift

import Foundation
struct SharedLocalStorage {
func value<T>(for key: String) -> T? {
userDefaults?.value(forKey: key) as? T
}
func set(value: (some Any)?, for key: String) {
guard let userDefaults else {
return
}
if let value {
userDefaults.set(value, forKey: key)
} else {
userDefaults.removeObject(forKey: key)
}
userDefaults.synchronize()
}
private var userDefaults: UserDefaults? {
guard let bundleIdentifier = Bundle.main.bundleIdentifier else {
return nil
}
return UserDefaults(suiteName: "group.\(bundleIdentifier.replacingOccurrences(of: ".widget", with: ""))")
}
}