Repository navigation
v2.3.0 — Abrir o app ficou rápido, e o vault tem backup
Abrir o app para de reler o vault inteiro, e o vault ganha um botão de backup.
⚡ O índice não é mais reconstruído do zero
A cada abertura o app lia todas as notas, uma por uma, através do Storage Access Framework — para montar a busca, os backlinks, as tags e os flashcards. Num vault de algumas centenas de notas essa é a coisa mais lenta que ele faz, e fazia por conteúdo que não tinha mudado.
Agora o texto fica guardado entre sessões e é validado por data de modificação: uma nota mexida em outro lugar — no desktop, por exemplo, numa pasta sincronizada — tem mtime diferente e é relida. O resto vem do cache.
Duas decisões que valem explicar:
- O cache não fica dentro do vault. É informação derivada: perder custa uma releitura e nada mais. Um JSON do tamanho do vault não tem o que fazer numa pasta que você sincroniza e faz backup.
- Uma nota que não pôde ser lida fica de fora do cache. Guardá-la como texto vazio com data válida a faria parecer atual para sempre, e ela sumiria da busca e dos backlinks atravessando reinícios. Foi exatamente esse o bug que mordeu a versão desktop.
💾 Backup do vault em .zip
No ⋮ do cabeçalho da gaveta. O destino é escolhido pelo seletor do próprio Android, então o arquivo pode ir para o Drive, para o cartão ou para onde você quiser — e o app não precisa de nenhuma permissão de armazenamento.
Inclui tudo: notas, anexos, PDFs e o agendamento dos flashcards. Backup que descarta as imagens em silêncio é pior que nenhum, porque você descobre quando precisa. Um arquivo que não puder ser lido é contado e pulado, e o total aparece no fim — em vez de abortar a operação inteira.
🧭 Onde ficam as ações do vault
Diagnóstico e backup foram para o ⋮ da gaveta, não para o ⋮ da nota. O da nota só existe quando há uma nota aberta; ações do vault ali ficariam inalcançáveis justamente para quem acabou de abrir o app.
🧪 Por baixo
+13 testes (94 no total), rodando no CI antes de cada APK.
📥 Instalação
Assinado com a mesma chave, instala por cima da 2.2.0. Android 9 ou mais novo.