128aab1b02
- Add iCloud key-value settings sync (engine/language/polish/Flow prefs); API keys stay on-device. New "Sync settings via iCloud" toggle. - Redesign cold-start handoff: bottom-bar left-to-right swipe guidance, auto-dismiss on app switch, tap-anywhere to close, retained return link. - Harden keyboard->app handoff with host-disconnected hint. - Include prior Unreleased ASR fixes (route-change crash, fallback warning, multi-utterance recognition, local ASR diagnostics). Release 0.5.0 (build 18).
38 lines
875 B
Swift
38 lines
875 B
Swift
// FakeUbiquitousKeyValueStore.swift
|
|
// OSGKeyboardTests
|
|
//
|
|
// In-memory KVS fake for hermetic iCloud sync tests.
|
|
|
|
import Foundation
|
|
@testable import OSGKeyboardShared
|
|
|
|
final class FakeUbiquitousKeyValueStore: UbiquitousKeyValueStoreing, @unchecked Sendable {
|
|
private var storage: [String: Any] = [:]
|
|
|
|
func data(forKey key: String) -> Data? {
|
|
storage[key] as? Data
|
|
}
|
|
|
|
func set(_ value: Data?, forKey key: String) {
|
|
if let value {
|
|
storage[key] = value
|
|
} else {
|
|
storage.removeValue(forKey: key)
|
|
}
|
|
}
|
|
|
|
func object(forKey key: String) -> Any? {
|
|
storage[key]
|
|
}
|
|
|
|
func set(_ value: Any?, forKey key: String) {
|
|
if let value {
|
|
storage[key] = value
|
|
} else {
|
|
storage.removeValue(forKey: key)
|
|
}
|
|
}
|
|
|
|
func synchronize() -> Bool { true }
|
|
}
|