Files
nearby_service/ios/Classes/NearbyPeersStreamHandler.swift
T
2024-01-31 14:16:22 +01:00

33 lines
937 B
Swift

import Flutter
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.getDevicesToJsonString()
self.eventSink?(devicesList)
}
}
func stopSendingUpdates() {
self.timer?.invalidate()
self.timer = nil
}
}