feat(ios): simplify navigation and ship 0.2.0

Move diagnostics into settings, remove the app-local notification module, unify the global theme switcher, refine privacy copy and the instance detail experience, and rebuild the app icon.
This commit is contained in:
chick
2026-09-12 17:10:02 +08:00
parent 20632be86a
commit e01a105645
25 changed files with 318 additions and 1393 deletions
@@ -12,24 +12,16 @@ public enum UpstreamRoute: Hashable, Sendable {
case smsList(limit: Int, offset: Int, direction: String?)
case smsSend(phoneNumber: String, content: String)
case smsBatchDelete(ids: [Int])
case notificationConfig
case notificationLogs(limit: Int, offset: Int)
case notificationQueue(limit: Int)
case notificationRetryAllQueue
case notificationRetryQueue(id: String)
case notificationDeleteQueue(id: String)
case authLogin(password: String)
case authLogout
public var method: String {
switch self {
case .health, .device, .sim, .network, .signalStrength, .stats, .statsCpu,
.connectivity, .smsList, .notificationConfig, .notificationLogs, .notificationQueue:
.connectivity, .smsList:
return "GET"
case .smsSend, .smsBatchDelete, .notificationRetryAllQueue, .notificationRetryQueue, .authLogin, .authLogout:
case .smsSend, .smsBatchDelete, .authLogin, .authLogout:
return "POST"
case .notificationDeleteQueue:
return "DELETE"
}
}
@@ -51,17 +43,6 @@ public enum UpstreamRoute: Hashable, Sendable {
return "/api/sms/list?\(items.joined(separator: "&"))"
case .smsSend: return "/api/sms/send"
case .smsBatchDelete: return "/api/sms/batch-delete"
case .notificationConfig: return "/api/notifications/config"
case .notificationLogs(let limit, let offset):
return "/api/notifications/logs?limit=\(limit)&offset=\(offset)"
case .notificationQueue(let limit):
return "/api/notifications/queue?limit=\(limit)"
case .notificationRetryAllQueue:
return "/api/notifications/queue/retry-all"
case .notificationRetryQueue(let id):
return "/api/notifications/queue/\(id)/retry"
case .notificationDeleteQueue(let id):
return "/api/notifications/queue/\(id)"
case .authLogin: return "/api/auth/login"
case .authLogout: return "/api/auth/logout"
}