build method

  1. @override
Future<List> build()

Implementation

@override
Future<List<DeviceRecord>> build() async {
  final client = ref.watch(alwaysClientProvider);
  final manager = client.sessionManager();

  _listener = client.deviceEventRx();
  _poller = _listener?.listen(
    (data) async {
      final sessions = (await manager.allSessions()).toList();
      state = AsyncValue.data(sessions);
    },
    onError: (e, s) {
      _log.severe('stream errored', e, s);
    },
    onDone: () {
      _log.info('stream ended');
    },
  );
  ref.onDispose(() => _poller?.cancel());

  final sessions = (await manager.allSessions()).toList();
  return sessions;
}