Aves_mio0.88/folders.md
2026-10-03 12:51:15 +02:00

2.1 KiB

  1. Avvio app → initFoldersCache() Carica la tabella folders nel foldersCache

  2. updateDirectories() (chiamato da CollectionSource)

  • Rilegge il DB
  • Raggruppa gli album in base a groupForAlbum()
  • Ordina i gruppi con orderForGroup()
  • Ricostruisce _directories
  • Notifica la UI
  1. 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 che debugCreateFoldersEnabled == 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