| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- @startuml composants
- skinparam componentStyle rectangle
- skinparam defaultFontSize 13
- skinparam packageStyle frame
- title Diagramme de composants — WatchOsm v1 (module wear autonome)
- package "Téléphone — Android 16" as phone #f5f5f5 {
- component "OsmAnd+ 5.4.9" as osmand
- component "Notification de navigation\n(contenu non contractuel)" as notif
- osmand --> notif
- }
- package "Montre — Wear OS 5" as watch #ffffff {
- package "Couche présentation" as ui {
- component "MainActivity\n(Compose for Wear OS)" as activity
- component "AppNavHost\n(SwipeDismissableNavHost)" as host
- component "HomeScreen" as home
- component "NavigationScreen" as nav
- component "ManeuverArrow\n(Canvas)" as arrow
- component "NavigationViewModel" as vm
- }
- package "Couche données" as data {
- component "OsmAndNotificationListener\n(NotificationListenerService)" as listener
- component "OsmAndNotificationParser" as parser
- component "NavigationStateRepository" as repo
- }
- component "WatchOsmApplication\n(AppContainer)" as app
- host --> home
- host --> nav
- nav --> arrow
- host --> vm : StateFlow<NavigationState>
- vm --> repo : lecture du flux
- listener --> parser : payload textuel
- parser --> repo : NavigationState?
- app "1" *-- "*" listener : accès
- app "1" *-- "1" repo : partagé avec les ViewModels
- }
- package "Système Android (montre)" as system #f0f0f0 {
- component "NotificationManager\n(relais des notifications\ndu téléphone)" as nm
- }
- notif ..> nm : relais Bluetooth
- nm --> listener : onNotificationPosted / onNotificationRemoved
- @enduml
|