61 lines
1.7 KiB
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()
|
|
}
|
|
}
|