import 'dart:async'; import 'package:collection/collection.dart'; import '../../youtube_explode_dart.dart'; /// class SearchList extends DelegatingList { final Stream _stream; /// SearchList._(List base, this._stream) : super(base); /// static Future create(Stream stream) async { Stream broadcast; broadcast = stream.asBroadcastStream(onCancel: (subscription) { print('Pause'); subscription.pause(); }, onListen: (subscription) { print('Resume'); subscription.resume(); }); final base = await broadcast.take(20).toList(); return SearchList._(base, broadcast); } /// Future nextPage() async { final base = await _stream.take(20).toList(); return SearchList._(base, _stream); } }