Files
nearby_service/darwin/Classes/StreamHandler/NearbyPeersStreamHandler.swift
T
Ben Hagen abe519dae7 Add macOS support (#23)
* Add macOS support

* Update README

* Update to v0.2.0

* Document breaking changes

* Delete widget tests
2025-05-13 16:24:58 +02:00

37 lines
984 B
Swift

#if os(iOS)
import Flutter
#elseif os(macOS)
import FlutterMacOS
#endif
class NearbyPeersStreamHandler: NSObject, FlutterStreamHandler {
private var eventSink: FlutterEventSink?
private var timer : Timer?
func onListen(withArguments arguments: Any?, eventSink: @escaping FlutterEventSink) -> FlutterError? {
self.eventSink = eventSink
startSendingUpdates()
return nil
}
func onCancel(withArguments arguments: Any?) -> FlutterError? {
stopSendingUpdates()
eventSink = nil
return nil
}
func startSendingUpdates() {
self.timer = Timer.scheduledTimer(withTimeInterval: 2.0, repeats: true) { [weak self] _ in
guard let self = self else { return }
let devicesList = NearbyDevicesStore.instance.toDartFormat()
self.eventSink?(devicesList)
}
}
func stopSendingUpdates() {
self.timer?.invalidate()
self.timer = nil
}
}