streamAllFileUploadRequests method

  1. @override
Stream<List<MediaBuilder>> streamAllFileUploadRequests()
override

Implementation

@override
Stream<List<MediaBuilder>> streamAllFileUploadRequests() {
  return _streamAllFileUploadRequestsEventChannel
      .receiveBroadcastStream()
      .map<List<MediaBuilder>>((event) {
    if (event == null || event == '[]' || event == '{}') {
      return <MediaBuilder>[];
    }

    final jsonData = event is String
        ? jsonDecode(event) as List<dynamic>
        : List<dynamic>.from(event as List);
    final builders = <MediaBuilder>[];

    for (final item in jsonData) {
      final builder = _buildMediaBuilderFromJsonMap(
        Map<String, dynamic>.from(item as Map),
        requireFilePath: false,
      );
      if (builder != null) {
        builders.add(builder);
      }
    }

    return builders;
  }).asBroadcastStream();
}