diff --git a/app/lib/ui/widgets/bottom_stats_bar.dart b/app/lib/ui/widgets/bottom_stats_bar.dart index e7272d2..7bf32e8 100644 --- a/app/lib/ui/widgets/bottom_stats_bar.dart +++ b/app/lib/ui/widgets/bottom_stats_bar.dart @@ -27,6 +27,17 @@ const _footerElementHeight = 36.0; /// Drohnen-Pille), an anderen Stellen war er fest auf 6px verdrahtet. const _footerElementSpacing = 8.0; +/// Einheitliche Icon-/Textgroesse und Schriftgewicht fuer alle Pillen und +/// Knoepfe der Fusszeile (Doku: "text und symbol hoehe in allen pillen und +/// buttons der fusszeile genau so machen wie in der neuen drone pille. +/// einheitliche schriftart und gewicht verwenden") - uebernommen von der +/// zuvor eigens dafuer eingefuehrten Drohnen-Status-Pille. Eine eigene +/// Schriftart wird nicht gesetzt, alle Texte hier verwenden bereits ohne +/// explizites fontFamily das App-Theme, sind also schon einheitlich. +const _footerIconSize = 20.0; +const _footerFontSize = 14.0; +const _footerFontWeight = FontWeight.w600; + /// Statuszeile am unteren Bildschirmrand (HTML-Demonstrator: #bottomBar/ /// #statsRow). Details-Pille bleibt mittig und oeffnet die Wegpunktliste; /// Mission-Chip links und Drohnen-Chip rechts oeffnen das Verwaltungsmenue @@ -225,25 +236,37 @@ class BottomStatsBar extends ConsumerWidget { 'Details:', style: TextStyle( color: Colors.white70, - fontWeight: FontWeight.w600, - fontSize: 14, + fontWeight: _footerFontWeight, + fontSize: _footerFontSize, ), ), const SizedBox(width: 10), - const Icon(Icons.flag, size: 14, color: Colors.white), + const Icon(Icons.flag, size: _footerIconSize, color: Colors.white), const SizedBox(width: 4), Text(waypointText, - style: const TextStyle(color: Colors.white, fontSize: 14)), + style: const TextStyle( + color: Colors.white, + fontSize: _footerFontSize, + fontWeight: _footerFontWeight, + )), const SizedBox(width: 14), - const Icon(Icons.straighten, size: 14, color: Colors.white), + const Icon(Icons.straighten, size: _footerIconSize, color: Colors.white), const SizedBox(width: 4), Text(distanceText, - style: const TextStyle(color: Colors.white, fontSize: 14)), + style: const TextStyle( + color: Colors.white, + fontSize: _footerFontSize, + fontWeight: _footerFontWeight, + )), const SizedBox(width: 14), - const Icon(Icons.access_time, size: 14, color: Colors.white), + const Icon(Icons.access_time, size: _footerIconSize, color: Colors.white), const SizedBox(width: 4), Text(durationText, - style: const TextStyle(color: Colors.white, fontSize: 14)), + style: const TextStyle( + color: Colors.white, + fontSize: _footerFontSize, + fontWeight: _footerFontWeight, + )), ], ), ), @@ -285,7 +308,7 @@ class _AltitudeProfileToggleButton extends StatelessWidget { ), child: Center( child: MountainPeakIcon( - size: 16, + size: _footerIconSize, color: Colors.white, upsideDown: isExpanded, ), @@ -314,7 +337,7 @@ class _WarningButton extends StatelessWidget { color: const Color(0xFFE2574A).withValues(alpha: 0.18), border: Border.all(color: const Color(0xFFE2574A).withValues(alpha: 0.5)), ), - child: const Icon(Icons.warning_amber_rounded, color: Color(0xFFFFB3A8), size: 18), + child: const Icon(Icons.warning_amber_rounded, color: Color(0xFFFFB3A8), size: _footerIconSize), ), ); } @@ -338,7 +361,7 @@ class _SettingsButton extends StatelessWidget { shape: BoxShape.circle, color: Colors.white.withValues(alpha: 0.12), ), - child: const Icon(Icons.settings, color: Colors.white, size: 18), + child: const Icon(Icons.settings, color: Colors.white, size: _footerIconSize), ), ); } @@ -414,22 +437,27 @@ class _DroneStatusPill extends StatelessWidget { // anordnen") - unsere Standardform (dieselben Koordinaten // wie DroneMarkerIcon/DroneFollowIcon), hier einfarbig nach // Zustand statt der zweifarbigen/pinken Kartenmarker-Variante. - PaperPlaneIcon(size: 15, color: stateColor), - const SizedBox(width: 4), + // Zustandstext folgt erst ganz am Ende hinter den beiden + // Qualitaets-Symbolen (Doku: "text fuer drone state als + // letztes hinter den symbolen anzeigen"). Icon-/Textgroessen + // an die Pillenhoehe angeglichen (Doku: "hoehe der pille + // besser ausnutzen") statt der vorher recht kleinen 12-15px. + PaperPlaneIcon(size: _footerIconSize, color: stateColor), + const SizedBox(width: 8), + Icon(Icons.signal_cellular_alt, + size: _footerIconSize, color: _signalColors[status.connectionQuality]), + const SizedBox(width: 8), + Icon(Icons.satellite_alt, + size: _footerIconSize, color: _signalColors[status.positionQuality]), + const SizedBox(width: 10), Text( _stateLabels[status.state]!, style: TextStyle( color: stateColor, - fontWeight: FontWeight.w600, - fontSize: 12, + fontWeight: _footerFontWeight, + fontSize: _footerFontSize, ), ), - const SizedBox(width: 10), - Icon(Icons.signal_cellular_alt, - size: 15, color: _signalColors[status.connectionQuality]), - const SizedBox(width: 8), - Icon(Icons.satellite_alt, - size: 14, color: _signalColors[status.positionQuality]), ], ), ), @@ -472,8 +500,8 @@ class _NameChip extends StatelessWidget { maxLines: 1, style: TextStyle( color: textColor, - fontWeight: FontWeight.w600, - fontSize: 12, + fontWeight: _footerFontWeight, + fontSize: _footerFontSize, ), ), ),