diff options
| author | Mojgan <mojgan.jelodar@mullvad.net> | 2026-04-23 16:47:40 +0200 |
|---|---|---|
| committer | Mojgan <mojgan.jelodar@mullvad.net> | 2026-04-23 16:47:40 +0200 |
| commit | 7944e9b1982feb3deba8871ab49e05d65886a235 (patch) | |
| tree | 7b9c2482cf13631a4442b9f1d5a97f77b7eb78eb /ios/SpeedConnection/SpeedConnectionViewModel.swift | |
| parent | 8ccdcafd4ce312f75ffabafc4ae93f8ef5bad736 (diff) | |
| download | mullvadvpn-speed-connetcion-hackday.tar.xz mullvadvpn-speed-connetcion-hackday.zip | |
Speed connection testspeed-connetcion-hackday
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() + } +} |
