iosWebViewFix/flutter_inappwebview_macos/macos/Classes/PrintJob/PrintJobChannelDelegate.swift

61 lines
1.7 KiB
Swift

//
// PrintJobChannelDelegate.swift
// flutter_inappwebview
//
// Created by Lorenzo Pichilli on 09/05/22.
//
import Foundation
import FlutterMacOS
public class PrintJobChannelDelegate: ChannelDelegate {
private weak var printJobController: PrintJobController?
public init(printJobController: PrintJobController, channel: FlutterMethodChannel) {
super.init(channel: channel)
self.printJobController = printJobController
}
public override func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
let arguments = call.arguments as? NSDictionary
switch call.method {
case "getInfo":
if let printJobController = printJobController {
result(printJobController.getInfo()?.toMap())
} else {
result(false)
}
break
case "dispose":
if let printJobController = printJobController {
printJobController.dispose()
result(true)
} else {
result(false)
}
break
default:
result(FlutterMethodNotImplemented)
break
}
}
public func onComplete(completed: Bool, error: Error?) {
let arguments: [String: Any?] = [
"completed": completed,
"error": error?.localizedDescription
]
channel?.invokeMethod("onComplete", arguments: arguments)
}
public override func dispose() {
super.dispose()
printJobController = nil
}
deinit {
dispose()
}
}