dev
swift 47 lines 1.74 KB
Raw
1 import Cocoa
2 import FlutterMacOS
3 import IOKit.pwr_mgt
4
5 @main
6 class AppDelegate: FlutterAppDelegate {
7 override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
8 return true
9 }
10
11 override func applicationDidFinishLaunching(_ notification: Notification) {
12 let controller : FlutterViewController = mainFlutterWindow?.contentViewController as! FlutterViewController
13
14 let utilsChannel = FlutterMethodChannel(
15 name: "com.cake_wallet/native_utils",
16 binaryMessenger: controller.engine.binaryMessenger)
17 utilsChannel.setMethodCallHandler({ [weak self] (call: FlutterMethodCall, result: @escaping FlutterResult) -> Void in
18 switch call.method {
19 case "sec_random":
20 guard let args = call.arguments as? Dictionary<String, Any>,
21 let count = args["count"] as? Int else {
22 result(nil)
23 return
24 }
25
26 result(secRandom(count: count))
27 case "setMinWindowSize":
28 guard let self = self else {
29 result(false)
30 return
31 }
32 if let arguments = call.arguments as? [String: Any],
33 let width = arguments["width"] as? Double,
34 let height = arguments["height"] as? Double {
35 DispatchQueue.main.async {
36 self.mainFlutterWindow?.minSize = CGSize(width: width, height: height)
37 }
38 result(true)
39 } else {
40 result(false)
41 }
42 default:
43 result(FlutterMethodNotImplemented)
44 }
45 })
46 }
47 }