build method

  1. @override
Future build()

Implementation

@override
Future<NotificationSettings> build() async {
  final client = ref.watch(alwaysClientProvider);
  final settings = await client.notificationSettings();
  _listener = settings.changesStream();
  _poller = _listener.listen(
    (data) {
      // reset the state of this to trigger the notification
      // cascade
      state = AsyncValue.data(settings);
    },
    onError: (e, s) {
      _log.severe('stream errored', e, s);
    },
    onDone: () {
      _log.info('stream ended');
    },
  );
  ref.onDispose(() => _poller.cancel());
  return settings;
}