import Foundation import UIKit // 用户可编辑的设备名,持久在 UserDefaults。用于扫码登录 qr/start 的初始 device_name。设备名 // 已与会话令牌解耦:登录后在设置页改名经 PATCH /api/devices/{device_id} 即时生效(后端按稳定 // device_id 改名 + 重广播 presence,不换 token),成功后由引擎 renamed 事件回写本存储 + Keychain // 会话名(见 EngineController / AuthManager)。默认取系统设备名。 enum DeviceNameStore { private static let key = "cdrop.deviceName" static var value: String { get { if let v = UserDefaults.standard.string(forKey: key), !v.isEmpty { return v } let sys = UIDevice.current.name return sys.isEmpty ? "iPhone" : sys } set { let trimmed = newValue.trimmingCharacters(in: .whitespacesAndNewlines) UserDefaults.standard.set(trimmed.isEmpty ? nil : trimmed, forKey: key) } } }