Compare commits

...
Author SHA1 Message Date
Ian 49d97a288a Start screening when the app launches 2026-10-26 10:58:16 -04:00
2 changed files with 9 additions and 7 deletions

No files matched your search

+3 -4
View File
@@ -33,12 +33,11 @@ enum SetupWindow {
private struct MenuBarLabel: View {
@ObservedObject var model: FirewallModel
@Environment(\.openWindow) private var openWindow
@State private var raised = false
var body: some View {
Image(nsImage: Self.icon).onAppear {
guard !raised, !model.screening else { return }
raised = true
Image(nsImage: Self.icon).task {
await model.refresh()
guard !model.configured else { return }
SetupWindow.open(openWindow)
}
}
+6 -3
View File
@@ -71,9 +71,8 @@ final class FirewallModel: NSObject, ObservableObject {
let running = connection.status == .connected
Task { @MainActor in self?.screening = running }
}
Task {
await refresh()
if CommandLine.arguments.contains("--install") { await install() }
if CommandLine.arguments.contains("--install") {
Task { await install() }
}
Task { await watchBlocks() }
}
@@ -83,6 +82,10 @@ final class FirewallModel: NSObject, ObservableObject {
func refresh() async {
if let manager = try? await loadManager() {
watched = manager
// Nothing starts the tunnel at boot, so the app does once it is set up and not paused.
if manager.isEnabled && manager.connection.status == .disconnected {
try? manager.connection.startVPNTunnel()
}
if manager.isEnabled {
screeningStep = .done("Enabled (\(manager.connection.status.label))")
}