Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Dúvida sobre o quarto teste

Observando o código do vídeo para o quarto teste
Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Após a linha 41 não deveria ter um vm.startTimer(5, isPaused); ?
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, João!

Sua observação faz sentido. Pelo comportamento esperado do teste, após alterar isPaused.value para false, o temporizador que foi iniciado enquanto estava pausado pode não voltar a contar automaticamente, dependendo de como o método startTimer() foi implementado.

No vídeo, a instrutora aparentemente apenas remove a pausa:

isPaused.value = false;
await Future.delayed(Duration(seconds: 1));

Isso pressupõe que o timer já estava ativo e verificando continuamente o valor de isPaused, retomando a contagem quando ele muda para false.

Porém, se a implementação do startTimer() interrompe a execução quando encontra o estado pausado, então seria necessário chamar novamente:

vm.startTimer(5, isPaused);

como você destacou na imagem.

Portanto, a necessidade dessa chamada depende diretamente da lógica interna do método startTimer(). Se ao executar o código sem essa linha o teste falhar, sua interpretação está correta. Vale a pena conferir a implementação do método para entender se ele apenas "ignora incrementos" quando pausado ou se realmente interrompe o temporizador.

Bons estudos.