mirror of
https://github.com/shadowsocks/ShadowsocksX-NG.git
synced 2026-11-08 18:34:50 +00:00
28 lines
1.1 KiB
Swift
28 lines
1.1 KiB
Swift
import Foundation
|
|
|
|
/// 静默启动偏好持久化(ADR 0017):存于应用标准 defaults 域(键
|
|
/// `silentLaunch`)的 GUI 呈现偏好,与代理控制偏好和监听配置分别管理。
|
|
/// 键缺失或外部错误类型按安全侧默认「不静默」(启动照常呈现主窗口)。
|
|
/// 初版开发文件不再迁移,旧平铺目录保持不变。
|
|
struct SilentLaunchStore {
|
|
private static let key = "silentLaunch"
|
|
let defaults: UserDefaults
|
|
|
|
init(defaults: UserDefaults = .standard) {
|
|
self.defaults = defaults
|
|
}
|
|
|
|
/// 键缺失或外部错误类型(无法按 Bool 桥接)→ `false`(安全侧:不静默),
|
|
/// 严格性与初版文件形态的 decode 一致,无需 register(defaults:)。
|
|
func loadSilentLaunchEnabled() -> Bool {
|
|
defaults.object(forKey: Self.key) as? Bool ?? false
|
|
}
|
|
|
|
/// UserDefaults 无失败信号:极端落盘失败表现为下次启动回退默认(尽力而为,
|
|
/// ADR 0017 修正后放弃文件版的失败点名路径)。
|
|
func save(silentLaunchEnabled: Bool) {
|
|
defaults.set(silentLaunchEnabled, forKey: Self.key)
|
|
}
|
|
|
|
}
|