2.1 KiB
2.1 KiB
-
Avvio app → initFoldersCache() Carica la tabella
foldersnelfoldersCache -
updateDirectories() (chiamato da CollectionSource)
- Rilegge il DB
- Raggruppa gli album in base a
groupForAlbum() - Ordina i gruppi con
orderForGroup() - Ricostruisce
_directories - Notifica la UI
- Quando arrivano nuove entry dal filesystem Qui sta la differenza rispetto ad Aves originale:
-
Aves originale:
“vedo una nuova directory → creo un album” -
Tua versione:
“vedo una nuova directory → NON creo album
(a meno chedebugCreateFoldersEnabled == true)”
Questo è controllato da:
if (!debugCreateFoldersEnabled) {
debugPrint('[folders] CREATION SKIPPED');
...
return;
}
4) Quando un album diventa vuoto
`cleanEmptyAlbums()`:
- controlla se esistono entry visibili in quella directory
- se no → elimina la riga dal DB
- aggiorna `_directories
5) Display name
Sempre e solo da DB:
```dart
final f = foldersCache[dirPath];
if (f != null) return f.displayName;
return pContext.basename(dirPath);
_____________________________________________________
## ⚠️ Punti critici (da conoscere per non impazzire)
### 1) **Gli album non nascono più automaticamente**
Questo è voluto, ma significa:
- se una directory appare nel filesystem
- **non diventa album**
- finché non la inserisci nel DB
Se vuoi ripristinare la creazione automatica, devi rimettere la logica originale di Aves.
---
### 2) `debugCreateFoldersEnabled` è un kill-switch
Se è `false`:
- nessuna nuova directory viene inserita nel DB
- ma viene comunque aggiunta a `foldersCache` in RAM
- e poi persa al prossimo riavvio
Questo può creare comportamenti “fantasma”.
---
### 3) `groupForAlbum()` è molto semplice
Attualmente:
- se `isRemote == 1` → Remote
- se `hybridType != null` → Local
- tutto il resto → Local
Non c’è distinzione tra User / Common / Device, anche se `orderForGroup()` la prevede.
---
### 4) `updateDirectories()` ignora completamente gli entry
Quindi se una directory esiste nel filesystem ma non nel DB:
- non appare negli album
- anche se contiene foto