| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- //
- // BackgroundRefreshSettingsViewModel.swift
- // LoopFollow
- //
- // Created by Jonas Björkert on 2025-01-02.
- //
- import Foundation
- import Combine
- class BackgroundRefreshSettingsViewModel: ObservableObject {
- @Published var backgroundRefreshType: BackgroundRefreshType
- private var storage = Storage.shared
- private var cancellables = Set<AnyCancellable>()
- private var isInitialSetup = true // Tracks whether the value is being set initially
- init() {
- self.backgroundRefreshType = storage.backgroundRefreshType.value
- setupBindings()
- }
- private func setupBindings() {
- $backgroundRefreshType
- .dropFirst() // Ignore the initial emission during setup
- .sink { [weak self] newValue in
- guard let self = self else { return }
- self.handleBackgroundRefreshTypeChange(newValue)
- // Persist the change
- self.storage.backgroundRefreshType.value = newValue
- }
- .store(in: &cancellables)
- }
- private func handleBackgroundRefreshTypeChange(_ newValue: BackgroundRefreshType) {
- print("Background refresh type changed to: \(newValue.rawValue)")
- BLEManager.shared.disconnect()
- }
- }
|