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

3.5 KiB
Raw Blame History

Certo Fabio. Ad oggi, per la parte Activity, dovremmo avere questa struttura principale.

File Activity attuali

lib/widgets/activity/
├── activity_files_page.dart
├── activity_auto_sync_controller.dart
├── activity_list_tile.dart
├── activity_map_page.dart
├── activity_sport_groups_view.dart
├── activity_album_groups_view.dart
├── preview/
│   ├── activity_entry_preview.dart
│   └── activity_track_preview.dart
└── utils/
    └── activity_formatters.dart

Cosa fa ogni file

activity_files_page.dart

È ancora il file principale della pagina Activity.

Contiene:

- caricamento attività DB
- scan manuale
- auto sync
- scelta cartella Activity
- apertura file manuale GPX/TCX/FIT
- gestione navbar Activity
- gestione viste:
  - activities
  - sports
  - albums
- preferiti
- rename activity
- apertura mappa
- dialog dettagli DB
- dialog ricalcolo

È ancora grande, ma molto meno di prima.


activity_auto_sync_controller.dart

Gestisce la sincronizzazione automatica:

- scan su apertura pagina
- scan quando app torna in foreground
- scan dopo selezione cartella

activity_list_tile.dart

Contiene le righe della lista attività:

ActivityEntryListTile
ActivityTrackListTile

Quindi gestisce la UI di:

- activity salvata nel DB
- activity aperta manualmente
- cuore preferiti
- menu azioni
- ricalcolo
- info DB
- rename

activity_map_page.dart

È la pagina mappa dell’attività.

Serve quando tocchi una activity:

_openActivity(activity)

activity_sport_groups_view.dart

È la nuova pagina/griglia Sport.

Contiene:

ActivitySportGroup
ActivitySportGroupsView

Serve per mostrare:

Corsa
Bici
Camminata
Senza sport

con thumbnail e numero attività.


activity_album_groups_view.dart

È la nuova pagina/griglia Album attività.

Contiene:

ActivityAlbumGroup
ActivityAlbumGroupsView

Serve per mostrare album/cartelle attività tipo:

Activity
main
Garmin
Zepp
Strava

con thumbnail e numero attività.


preview/activity_entry_preview.dart

Contiene la preview grafica per attività DB:

ActivityEntryPreview
_ActivityEntryPreviewPainter

Usa:

List<ActivityPreviewPoint>

per disegnare la traccia salvata nel DB.


preview/activity_track_preview.dart

Contiene la preview grafica per attività aperte manualmente:

ActivityTrackPreview
_ActivityTrackPreviewPainter

Usa:

ActivityTrack

per disegnare la traccia direttamente dal file aperto.


utils/activity_formatters.dart

Contiene formatter e calcoli comuni:

ActivityFormatters

Con metodi tipo:

ActivityFormatters.distance(...)
ActivityFormatters.entryElevation(...)
ActivityFormatters.entryDate(...)
ActivityFormatters.entryDuration(...)
ActivityFormatters.computeDistanceFromTrack(...)
ActivityFormatters.readDiagnosticDouble(...)
ActivityFormatters.isExpectedActivityRoot(...)

Prossimo file che conviene creare

Il prossimo split utile è:

lib/widgets/activity/dialogs/activity_recalculate_dialog.dart

Per spostare fuori da activity_files_page.dart:

_showRecalculateDialog
_CompareLine

Poi subito dopo:

lib/widgets/activity/dialogs/activity_db_fields_dialog.dart

Per spostare:

_showActivityDbFieldsDialog
_activityEntryDbRows
_DbFieldLine

Così activity_files_page.dart si alleggerisce parecchio.