Skip to content

Visualizar Música — Tarefas

Gerado pelo Writer (Reversa) em 2026-05-11

Pré-requisitos

  • [ ] carregarMusica thunk implementado (ver musicas/tasks.md T-07)
  • [ ] MusicasFavoritasRepository.marcarAsVisualizada disponível
  • [ ] RepertoriosRepository.addItem disponível
  • [ ] react-native-keep-awake instalado

Tarefas

  • [ ] T-01 — Implementar MusicasRepository.findById com JOIN de índices e mídias
  • Origem: src/repository/musicas/MusicasRepository.tsfindById
  • Critério de pronto: retorna InformacoesDetalhadasMusica com indices[] corretos; música sem livro retorna indices: []
  • Confiança: 🟢

  • [ ] T-02 — Implementar lógica de cache no thunk carregarMusica

  • Origem: src/store/Musicas/Musicas.action.ts
  • Critério de pronto: segunda chamada para mesmo id_musica não dispara findById
  • Confiança: 🟢

  • [ ] T-03 — Integrar Keep Awake na tela de letra (mount/unmount)

  • Origem: commits fix: keep awake
  • Critério de pronto: activateKeepAwake no mount; deactivateKeepAwake no unmount; testado via back gesture e navigation replace
  • Confiança: 🟢

  • [ ] T-04 — Implementar side effect marcarMusicaComoVisualizada como fire-and-forget

  • Origem: src/store/Musicas/Musicas.action.tsmarcarMusicaComoVisualizada
  • Critério de pronto: não bloqueia render da tela; música aparece em "Visto recentemente" após visualização
  • Confiança: 🟢

  • [ ] T-05 — Implementar fallback YouTubeYouTubes[0] no componente de player

  • Origem: src/model/Musica.tsMidias
  • Critério de pronto: música com apenas YouTube (deprecated) exibe player corretamente
  • Confiança: 🟡

  • [ ] T-06 — Renderizar seção de índices por livro (ocultar se indices: [])

  • Origem: src/model/IndiceMusica.ts
  • Critério de pronto: músicas com índices exibem todos os livros; músicas sem índice não exibem a seção
  • Confiança: 🟢

Tarefas de Teste

  • [ ] TT-01 — Teste de cache: spy em findById confirma que segunda chamada não executa
  • [ ] TT-02 — Teste de side effect: marcarAsVisualizada chamado após carregarMusica
  • [ ] TT-03 — Teste de fallback YouTube: midias.YouTubes vazio + midias.YouTube preenchido → player exibe vídeo

Lacunas Pendentes (🔴)

  • Confirmar cleanup do Keep Awake em todos os cenários de saída
  • Identificar ponto exato de sanitização da letra de Salmo