SecureStorageSample/SecureStorageSample Watch App/Services/Handlers/SyncableSettingWatchHandler.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)
}
}
}