diff options
Diffstat (limited to 'ios/SpeedConnection/SpeedConnectionViewModel.swift')
| -rw-r--r-- | ios/SpeedConnection/SpeedConnectionViewModel.swift | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/ios/SpeedConnection/SpeedConnectionViewModel.swift b/ios/SpeedConnection/SpeedConnectionViewModel.swift new file mode 100644 index 0000000000..a06e857cc4 --- /dev/null +++ b/ios/SpeedConnection/SpeedConnectionViewModel.swift @@ -0,0 +1,41 @@ +// +// SpeedConnectionViewModel.swift +// MullvadVPN +// +// Created by Mojgan on 2026-04-23. +// Copyright © 2026 Mullvad VPN AB. All rights reserved. +// + +import Combine + +protocol SpeedConnectionViewModelProtocol: ObservableObject { + var uploadValue: Double { get } + var downloadValue: Double { get } + + func startMonitoring() + func stopMonitoring() +} + + +class SpeedConnectionViewModel: SpeedConnectionViewModelProtocol,@unchecked Sendable { + @Published var uploadValue: Double = 0.0 + @Published var downloadValue: Double = 0.0 + var networkSpeedMonitor : NetworkSpeedMonitorProtocol + + init(networkSpeedMonitor : NetworkSpeedMonitorProtocol) { + self.networkSpeedMonitor = networkSpeedMonitor + self.networkSpeedMonitor.onUpdateTrafficSummery = { [weak self] trafficSummery in + Task { @MainActor in + self?.uploadValue = trafficSummery.speed.sent + self?.downloadValue = trafficSummery.speed.received + } + } + } + func startMonitoring() { + self.networkSpeedMonitor.start(timeInterval: 1.0) + } + + func stopMonitoring() { + self.networkSpeedMonitor.stop() + } +} |
