otaProgressStream property

  1. @override
Stream<OTAProgress> get otaProgressStream
override

Implementation

@override
Stream<OTAProgress> get otaProgressStream {
  _otaStreamController?.close();
  _otaStreamController = StreamController<OTAProgress>.broadcast();

  _otaEventChannel.receiveBroadcastStream().listen(
    (dynamic event) {
      if (event is Map) {
        try {
          final progress =
              OTAProgress.fromMap(Map<String, dynamic>.from(event));
          _otaStreamController?.add(progress);
        } catch (e) {
          debugPrint('Error parsing OTA progress: $e');
        }
      }
    },
    onError: (dynamic error) {
      debugPrint('OTA stream error: $error');
      _otaStreamController?.addError(error);
    },
    onDone: () {
      _otaStreamController?.close();
    },
  );

  return _otaStreamController!.stream;
}