3.5 KiB
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.