import Cocoa import FlutterMacOS import IOKit.pwr_mgt @NSApplicationMain class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } override func applicationDidFinishLaunching(_ notification: Notification) { let controller : FlutterViewController = mainFlutterWindow?.contentViewController as! FlutterViewController let utilsChannel = FlutterMethodChannel( name: "com.cake_wallet/native_utils", binaryMessenger: controller.engine.binaryMessenger) utilsChannel.setMethodCallHandler({ [weak self] (call: FlutterMethodCall, result: @escaping FlutterResult) -> Void in switch call.method { case "sec_random": guard let args = call.arguments as? Dictionary, let count = args["count"] as? Int else { result(nil) return } result(secRandom(count: count)) case "setMinWindowSize": guard let self = self else { result(false) return } if let arguments = call.arguments as? [String: Any], let width = arguments["width"] as? Double, let height = arguments["height"] as? Double { DispatchQueue.main.async { self.mainFlutterWindow?.minSize = CGSize(width: width, height: height) } result(true) } else { result(false) } default: result(FlutterMethodNotImplemented) } }) } }