Não vi nenhuma implementação. Também não consegui resolver. Aí vou postar o que tentei fazer e para caso alguém saiba, me dar alguma dica depois de como finalizar.
A minha intenção foi criar uma nova Stream lá na classe BotClock
Stream inputStream() async* {
int i = 0;
while (i != 5) {
await Future.delayed(Duration(seconds: i));
yield i++;
print('time: $i');
}
}
E após a linha que lê o input do usuário eu adicionei o seguinte trecho para ver se eu não digitasse nada, se o tempo iria acrescentar ou não:
var secondStream = BotClock().inputStream();
var timeoutStream = secondStream.listen(
(event) => print('Tempo ocioso $event'),
onDone: () => print('Função deu timeout'));
Mas não consegui fazer o contador incrementar enquanto a máquina espera o usuário digitar alguma pergunta. Alguém pode me ajudar?