diff --git a/LoopFollow/Settings/SettingsMenuView.swift b/LoopFollow/Settings/SettingsMenuView.swift index 8dab5c68b..55c9e18ef 100644 --- a/LoopFollow/Settings/SettingsMenuView.swift +++ b/LoopFollow/Settings/SettingsMenuView.swift @@ -6,9 +6,9 @@ import SwiftUI import UIKit struct SettingsMenuView: View { - // MARK: – Call-backs + // MARK: - Observed Objects - let onNightscoutVisibilityChange: (_ enabled: Bool) -> Void + @ObservedObject private var nightscoutURL = Storage.shared.url // MARK: – Local state @@ -45,7 +45,7 @@ struct SettingsMenuView: View { path.append(Sheet.graph) } - if IsNightscoutEnabled() { + if !nightscoutURL.value.isEmpty { NavigationRow(title: "Information Display Settings", icon: "info.circle") { @@ -154,9 +154,6 @@ struct SettingsMenuView: View { path.append(Sheet.dexcom) } } - .onAppear { - onNightscoutVisibilityChange(IsNightscoutEnabled()) - } } @ViewBuilder diff --git a/LoopFollow/Storage/Storage.swift b/LoopFollow/Storage/Storage.swift index 9c5852aaa..49050f9a0 100644 --- a/LoopFollow/Storage/Storage.swift +++ b/LoopFollow/Storage/Storage.swift @@ -11,7 +11,7 @@ import UIKit */ class Storage { - var remoteType = StorageValue(key: "remoteType", defaultValue: .nightscout) + var remoteType = StorageValue(key: "remoteType", defaultValue: .none) var deviceToken = StorageValue(key: "deviceToken", defaultValue: "") var expirationDate = StorageValue(key: "expirationDate", defaultValue: nil) var sharedSecret = StorageValue(key: "sharedSecret", defaultValue: "") diff --git a/LoopFollow/ViewControllers/MainViewController.swift b/LoopFollow/ViewControllers/MainViewController.swift index 2bb202e6e..c698cf53c 100644 --- a/LoopFollow/ViewControllers/MainViewController.swift +++ b/LoopFollow/ViewControllers/MainViewController.swift @@ -291,6 +291,13 @@ class MainViewController: UIViewController, UITableViewDataSource, ChartViewDele } .store(in: &cancellables) + Storage.shared.url.$value + .receive(on: DispatchQueue.main) + .sink { [weak self] value in + self?.tabBarController?.tabBar.items?[3].isEnabled = !value.isEmpty + } + .store(in: &cancellables) + updateQuickActions() speechSynthesizer.delegate = self diff --git a/LoopFollow/ViewControllers/SettingsViewController.swift b/LoopFollow/ViewControllers/SettingsViewController.swift index aaffff033..7a4b00353 100644 --- a/LoopFollow/ViewControllers/SettingsViewController.swift +++ b/LoopFollow/ViewControllers/SettingsViewController.swift @@ -16,10 +16,7 @@ final class SettingsViewController: UIViewController { super.viewDidLoad() // Build SwiftUI menu - host = UIHostingController( - rootView: SettingsMenuView { [weak self] nightscoutEnabled in - self?.tabBarController?.tabBar.items?[3].isEnabled = nightscoutEnabled - }) + host = UIHostingController(rootView: SettingsMenuView()) // Dark-mode override if Storage.shared.forceDarkMode.value {