blob: 3f089875c9c13d2e00f4fa586830f7f16103d407 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
// SPDX-License-Identifier: MIT
// Copyright © 2018 WireGuard LLC. All Rights Reserved.
import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
var statusItemController: StatusItemController?
var currentTunnelStatusObserver: AnyObject?
func applicationDidFinishLaunching(_ aNotification: Notification) {
Logger.configureGlobal(withFilePath: FileManager.appLogFileURL?.path)
TunnelsManager.create { [weak self] result in
guard let self = self else { return }
if let error = result.error {
ErrorPresenter.showErrorAlert(error: error, from: nil)
return
}
let tunnelsManager: TunnelsManager = result.value!
let statusItemController = StatusItemController()
let statusMenu = StatusMenu(tunnelsManager: tunnelsManager)
statusItemController.statusItem.menu = statusMenu
statusItemController.currentTunnel = statusMenu.currentTunnel
self.currentTunnelStatusObserver = statusMenu.observe(\.currentTunnel) { statusMenu, _ in
statusItemController.currentTunnel = statusMenu.currentTunnel
}
self.statusItemController = statusItemController
tunnelsManager.tunnelsListDelegate = statusMenu
tunnelsManager.activationDelegate = statusMenu
}
}
}
|