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