Migrate from iOS 17 Observation to iOS 16-compatible Combine architecture.

Lower deployment target to iOS 16, replace @Observable with ObservableObject, add navigation and UI compatibility shims, and include login smoke UI tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-26 10:16:35 +08:00
parent c32a610ee0
commit 26f4d0e671
127 changed files with 2320 additions and 1465 deletions

View File

@ -8,7 +8,7 @@
import AVFoundation
import Foundation
import Network
import Observation
import Combine
///
enum LivePushPermissionState: Equatable {
@ -158,23 +158,22 @@ final class SystemLiveNetworkMonitor: LiveNetworkMonitoring {
}
@MainActor
@Observable
/// ViewModel SDK
final class LivePushReadinessViewModel {
var cameraPermission: LivePushPermissionState = .unknown
var microphonePermission: LivePushPermissionState = .unknown
var networkState: LivePushNetworkState = .unknown
var prepared = false
var running = false
var errorMessage: String?
final class LivePushReadinessViewModel: ObservableObject {
@Published var cameraPermission: LivePushPermissionState = .unknown
@Published var microphonePermission: LivePushPermissionState = .unknown
@Published var networkState: LivePushNetworkState = .unknown
@Published var prepared = false
@Published var running = false
@Published var errorMessage: String?
let adapterName: String
let sdkStatusText: String
@ObservationIgnored private let permissionProvider: any LivePermissionProviding
@ObservationIgnored private let networkMonitor: any LiveNetworkMonitoring
@ObservationIgnored private let adapter: any LivePushAdapter
@ObservationIgnored private var pushURL: URL?
private let permissionProvider: any LivePermissionProviding
private let networkMonitor: any LiveNetworkMonitoring
private let adapter: any LivePushAdapter
@Published private var pushURL: URL?
init(
permissionProvider: any LivePermissionProviding = SystemLivePermissionProvider(),