build method
Implementation
@override
FutureOr<AttachmentsManager> build(Future<AttachmentsManager> arg) async {
final manager = await arg;
_listener = manager.subscribeStream(); // keep it resident in memory
_poller = _listener.listen(
(e) async {
_log.info('attempting to reload');
final newManager = await manager.reload();
final count = newManager.attachmentsCount();
_log.info('manager updated. attachments: $count');
state = AsyncValue.data(newManager);
},
onError: (e, s) {
_log.severe('stream errored', e, s);
},
onDone: () {
_log.info('stream ended');
},
);
ref.onDispose(() => _poller.cancel());
return manager;
}