30 lines
758 B
Swift
30 lines
758 B
Swift
import Foundation
|
|
import SharedKit
|
|
|
|
@MainActor
|
|
final class SyncableSettingWatchHandler: WatchDataHandling {
|
|
let key = StorageKeyNames.syncableSetting
|
|
|
|
private let store: WatchProfileStore
|
|
private let decoder = JSONDecoder()
|
|
|
|
init(store: WatchProfileStore) {
|
|
self.store = store
|
|
}
|
|
|
|
convenience init() {
|
|
self.init(store: .shared)
|
|
}
|
|
|
|
func handle(data: Data) {
|
|
do {
|
|
let value = try decoder.decode(String.self, from: data)
|
|
store.setSyncValue(value)
|
|
Logger.debug("Watch synced syncable setting")
|
|
} catch {
|
|
store.setStatus("Failed to decode sync value")
|
|
Logger.error("Watch failed to decode syncable setting", error: error)
|
|
}
|
|
}
|
|
}
|