mirror of
https://github.com/shadowsocks/ShadowsocksX-NG.git
synced 2026-11-08 11:14:51 +00:00
24 lines
916 B
Swift
24 lines
916 B
Swift
import SwiftUI
|
|
|
|
/// 静默启动偏好(ADR 0017):启动时不呈现主窗口,直接以菜单栏形态后台运行。
|
|
/// 默认关;切换即持久化,当次会话无影响,下次启动生效。代理运行时恢复与
|
|
/// 登录项注册都不依赖它。持久化走应用 defaults 域,与监听文件分别管理。
|
|
@MainActor
|
|
final class SilentLaunchController: ObservableObject {
|
|
@Published private(set) var isEnabled: Bool
|
|
|
|
private let store: SilentLaunchStore
|
|
|
|
init(store: SilentLaunchStore) {
|
|
self.store = store
|
|
isEnabled = store.loadSilentLaunchEnabled()
|
|
}
|
|
|
|
/// 先落盘后翻转内存态:开关呈现不得与下次启动的实际行为脱节。UserDefaults
|
|
/// 无失败信号(cfprefsd 尽力而为),文件版的失败点名路径随迁移移除。
|
|
func setEnabled(_ enabled: Bool) {
|
|
store.save(silentLaunchEnabled: enabled)
|
|
isEnabled = enabled
|
|
}
|
|
}
|