Add ios command client

This commit is contained in:
problematicconsumer
2024-02-03 21:21:46 +03:30
parent d6bd161a75
commit b1d6c56a3e
5 changed files with 246 additions and 147 deletions

View File

@@ -1,16 +1,11 @@
//
// LogsEventHandler.swift
// Runner
//
// Created by GFWFighter on 10/24/23.
//
import Foundation
import Combine
public class LogsEventHandler: NSObject, FlutterPlugin, FlutterStreamHandler {
static let name = "\(Bundle.main.serviceIdentifier)/service.logs"
private var channel: FlutterEventChannel?
private var cancellable: AnyCancellable?
public static func register(with registrar: FlutterPluginRegistrar) {
let instance = LogsEventHandler()
@@ -19,13 +14,15 @@ public class LogsEventHandler: NSObject, FlutterPlugin, FlutterStreamHandler {
}
public func onListen(withArguments arguments: Any?, eventSink events: @escaping FlutterEventSink) -> FlutterError? {
if VPNManager.shared.logCallback {
events(VPNManager.shared.logList)
VPNManager.shared.logClient?.connect()
cancellable = VPNManager.shared.logClient?.$logList.sink { [events] logsList in
events(logsList)
}
return nil
}
public func onCancel(withArguments arguments: Any?) -> FlutterError? {
cancellable?.cancel()
return nil
}
}