abe519dae7
* Add macOS support * Update README * Update to v0.2.0 * Document breaking changes * Delete widget tests
37 lines
984 B
Swift
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
|
|
}
|
|
}
|