update ios
This commit is contained in:
@@ -9,11 +9,12 @@ import Foundation
|
||||
import Combine
|
||||
|
||||
public class AlertsEventHandler: NSObject, FlutterPlugin, FlutterStreamHandler {
|
||||
static let name = "\(FilePath.packageName)/service.alerts"
|
||||
static let name = "\(Bundle.main.serviceIdentifier)/service.alerts"
|
||||
|
||||
private var channel: FlutterEventChannel?
|
||||
|
||||
private var cancellable: AnyCancellable?
|
||||
private var cancelBag: Set<AnyCancellable> = []
|
||||
|
||||
public static func register(with registrar: FlutterPluginRegistrar) {
|
||||
let instance = AlertsEventHandler()
|
||||
@@ -22,7 +23,13 @@ public class AlertsEventHandler: NSObject, FlutterPlugin, FlutterStreamHandler {
|
||||
}
|
||||
|
||||
public func onListen(withArguments arguments: Any?, eventSink events: @escaping FlutterEventSink) -> FlutterError? {
|
||||
cancellable = VPNManager.shared.$alert.sink { [events] alert in
|
||||
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
|
||||
var data = [
|
||||
"status": "Stopped",
|
||||
"alert": alert.alert?.rawValue,
|
||||
@@ -34,12 +41,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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import Foundation
|
||||
|
||||
public class FileMethodHandler: NSObject, FlutterPlugin {
|
||||
|
||||
public static let name = "\(FilePath.packageName)/files.method"
|
||||
public static let name = "\(Bundle.main.serviceIdentifier)/files.method"
|
||||
|
||||
public static func register(with registrar: FlutterPluginRegistrar) {
|
||||
let channel = FlutterMethodChannel(name: Self.name, binaryMessenger: registrar.messenger())
|
||||
@@ -21,6 +21,8 @@ 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([
|
||||
|
||||
@@ -29,7 +29,7 @@ struct SBGroup: Codable {
|
||||
|
||||
public class GroupsEventHandler: NSObject, FlutterPlugin, FlutterStreamHandler, LibboxCommandClientHandlerProtocol {
|
||||
|
||||
static let name = "\(FilePath.packageName)/groups"
|
||||
static let name = "\(Bundle.main.serviceIdentifier)/groups"
|
||||
|
||||
private var channel: FlutterEventChannel?
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
import Foundation
|
||||
|
||||
public class LogsEventHandler: NSObject, FlutterPlugin, FlutterStreamHandler {
|
||||
static let name = "\(FilePath.packageName)/service.logs"
|
||||
static let name = "\(Bundle.main.serviceIdentifier)/service.logs"
|
||||
|
||||
private var channel: FlutterEventChannel?
|
||||
|
||||
|
||||
@@ -13,23 +13,32 @@ public class MethodHandler: NSObject, FlutterPlugin {
|
||||
|
||||
private var cancelBag: Set<AnyCancellable> = []
|
||||
|
||||
public static let name = "\(FilePath.packageName)/method"
|
||||
public static let name = "\(Bundle.main.serviceIdentifier)/method"
|
||||
|
||||
public static func register(with registrar: FlutterPluginRegistrar) {
|
||||
let channel = FlutterMethodChannel(name: Self.name, binaryMessenger: registrar.messenger())
|
||||
let instance = MethodHandler()
|
||||
registrar.addMethodCallDelegate(instance, channel: channel)
|
||||
instance.channel = channel
|
||||
instance.channel = channel
|
||||
}
|
||||
|
||||
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))
|
||||
case "change_config_options":
|
||||
result(changeConfigOptions(args: call.arguments))
|
||||
case "setup":
|
||||
Task { [unowned self] in
|
||||
let res = await setup(args: call.arguments)
|
||||
await MainActor.run {
|
||||
result(res)
|
||||
}
|
||||
}
|
||||
case "start":
|
||||
Task { [unowned self] in
|
||||
let res = await start(args: call.arguments)
|
||||
@@ -80,6 +89,15 @@ public class MethodHandler: NSObject, FlutterPlugin {
|
||||
return true
|
||||
}
|
||||
|
||||
public func setup(args: Any?) async -> Bool {
|
||||
do {
|
||||
try await VPNManager.shared.setup()
|
||||
} catch {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
public func start(args: Any?) async -> Bool {
|
||||
guard
|
||||
let args = args as? [String:Any?],
|
||||
|
||||
@@ -9,11 +9,12 @@ import Foundation
|
||||
import Combine
|
||||
|
||||
public class StatusEventHandler: NSObject, FlutterPlugin, FlutterStreamHandler {
|
||||
static let name = "com.hiddify.app//service.status"
|
||||
static let name = "\(Bundle.main.serviceIdentifier)/service.status"
|
||||
|
||||
private var channel: FlutterEventChannel?
|
||||
|
||||
private var cancellable: AnyCancellable?
|
||||
private var cancelBag: Set<AnyCancellable> = []
|
||||
|
||||
public static func register(with registrar: FlutterPluginRegistrar) {
|
||||
let instance = StatusEventHandler()
|
||||
@@ -22,7 +23,13 @@ public class StatusEventHandler: NSObject, FlutterPlugin, FlutterStreamHandler {
|
||||
}
|
||||
|
||||
public func onListen(withArguments arguments: Any?, eventSink events: @escaping FlutterEventSink) -> FlutterError? {
|
||||
cancellable = VPNManager.shared.$state.sink { [events] status in
|
||||
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
|
||||
switch status {
|
||||
case .reasserting, .connecting:
|
||||
events(["status": "Starting"])
|
||||
@@ -35,12 +42,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
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user