import Foundation import Libbox import Library import SwiftUI @MainActor public final class OverviewViewModel: BaseViewModel { @Published public var reasserting = false public func switchProfile(_ profileID: Int64, profile: ExtensionProfile, environments: ExtensionEnvironments) async { await SharedPreferences.selectedProfileID.set(profileID) environments.selectedProfileUpdate.send() if profile.status.isConnected { do { try await profile.reloadService() } catch { alert = AlertState(error: error) } } reasserting = false } public nonisolated func setSystemProxyEnabled(_ enabled: Bool, profile: ExtensionProfile) async { do { await SharedPreferences.systemProxyEnabled.set(enabled) if enabled { try LibboxNewStandaloneCommandClient()!.setSystemProxyEnabled(enabled) } else { await MainActor.run { reasserting = true } try await profile.restart() await MainActor.run { reasserting = false } } } catch { await MainActor.run { alert = AlertState(error: error) } } } }