fix: set codec for stream handlers

This commit is contained in:
hiddify
2023-12-27 00:42:28 +03:30
parent 38348feb25
commit c5619fc5fa
4 changed files with 8 additions and 26 deletions

View File

@@ -14,22 +14,15 @@ public class AlertsEventHandler: NSObject, FlutterPlugin, FlutterStreamHandler {
private var channel: FlutterEventChannel?
private var cancellable: AnyCancellable?
private var cancelBag: Set<AnyCancellable> = []
public static func register(with registrar: FlutterPluginRegistrar) {
let instance = AlertsEventHandler()
instance.channel = FlutterEventChannel(name: Self.name, binaryMessenger: registrar.messenger())
instance.channel = FlutterEventChannel(name: Self.name, binaryMessenger: registrar.messenger(), codec: FlutterJSONMethodCodec())
instance.channel?.setStreamHandler(instance)
}
public func onListen(withArguments arguments: Any?, eventSink events: @escaping FlutterEventSink) -> FlutterError? {
print("[TLOG] handle start method \(AlertsEventHandler.name)")
NSLog("[TLOG] handle start method \(AlertsEventHandler.name)")
defer {
print("[TLOG] handler end method \(AlertsEventHandler.name)")
NSLog("[TLOG] handler end method \(AlertsEventHandler.name)")
}
VPNManager.shared.$alert.sink { [events] alert in
cancellable = VPNManager.shared.$alert.sink { [events] alert in
var data = [
"status": "Stopped",
"alert": alert.alert?.rawValue,
@@ -41,12 +34,12 @@ public class AlertsEventHandler: NSObject, FlutterPlugin, FlutterStreamHandler {
}
}
events(data)
}.store(in: &cancelBag)
}
return nil
}
public func onCancel(withArguments arguments: Any?) -> FlutterError? {
// cancellable?.cancel()
cancellable?.cancel()
return nil
}
}

View File

@@ -21,8 +21,6 @@ public class FileMethodHandler: NSObject, FlutterPlugin {
private var channel: FlutterMethodChannel?
public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
NSLog("[TLOG] handle start method \(call.method)")
defer { NSLog("[TLOG] handler end method \(call.method)") }
switch call.method {
case "get_paths":
result([

View File

@@ -25,8 +25,6 @@ public class MethodHandler: NSObject, FlutterPlugin {
private var channel: FlutterMethodChannel?
public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
NSLog("[TLOG] handle start method \(call.method)")
defer { NSLog("[TLOG] handler end method \(call.method)") }
switch call.method {
case "parse_config":
result(parseConfig(args: call.arguments))

View File

@@ -14,22 +14,15 @@ public class StatusEventHandler: NSObject, FlutterPlugin, FlutterStreamHandler {
private var channel: FlutterEventChannel?
private var cancellable: AnyCancellable?
private var cancelBag: Set<AnyCancellable> = []
public static func register(with registrar: FlutterPluginRegistrar) {
let instance = StatusEventHandler()
instance.channel = FlutterEventChannel(name: Self.name, binaryMessenger: registrar.messenger())
instance.channel = FlutterEventChannel(name: Self.name, binaryMessenger: registrar.messenger(), codec: FlutterJSONMethodCodec())
instance.channel?.setStreamHandler(instance)
}
public func onListen(withArguments arguments: Any?, eventSink events: @escaping FlutterEventSink) -> FlutterError? {
print("[TLOG] handle start method \(StatusEventHandler.name)")
NSLog("[TLOG] handle start method \(StatusEventHandler.name)")
defer {
print("[TLOG] handler end method \(StatusEventHandler.name)")
NSLog("[TLOG] handler end method \(StatusEventHandler.name)")
}
VPNManager.shared.$state.sink { [events] status in
cancellable = VPNManager.shared.$state.sink { [events] status in
switch status {
case .reasserting, .connecting:
events(["status": "Starting"])
@@ -42,12 +35,12 @@ public class StatusEventHandler: NSObject, FlutterPlugin, FlutterStreamHandler {
@unknown default:
events(["status": "Stopped"])
}
}.store(in: &cancelBag)
}
return nil
}
public func onCancel(withArguments arguments: Any?) -> FlutterError? {
// cancellable?.cancel()
cancellable?.cancel()
return nil
}
}