import Flutter import UIKit /// Flutter entry point — mirrors the Android `JielihomePlugin.kt`. /// /// Responsibilities (kept symmetric with Android): /// 1. Bind `device_jieli/method` MethodChannel to [MethodRouter]; /// 2. Bind `device_jieli/event` EventChannel to the shared [EventDispatcher]; /// 3. Register the JieLi vendor with the device-manager native registry /// (placeholder until [JieliNativeDevicePlugin.register] is wired). /// /// All actual business logic lives in [JieliHomeServer] and the feature/event /// submodules under `Classes/Feature/`. public class JielihomePlugin: NSObject, FlutterPlugin { private var methodChannel: FlutterMethodChannel? private var eventChannel: FlutterEventChannel? private var router: MethodRouter? public static func register(with registrar: FlutterPluginRegistrar) { let instance = JielihomePlugin() instance.attach(registrar: registrar) } private func attach(registrar: FlutterPluginRegistrar) { let server = JieliHomeServer.shared let router = MethodRouter(server: server) self.router = router let methodChannel = FlutterMethodChannel( name: "device_jieli/method", binaryMessenger: registrar.messenger() ) methodChannel.setMethodCallHandler { call, result in router.handle(call: call, result: result) } self.methodChannel = methodChannel let eventChannel = FlutterEventChannel( name: "device_jieli/event", binaryMessenger: registrar.messenger() ) eventChannel.setStreamHandler(server.dispatcher) self.eventChannel = eventChannel // Vendor registration with the device-manager registry. Symmetric to // Android's `JieliNativeDevicePlugin.register(...)`. JieliNativeDevicePlugin.register() } }