drone status menue with status and critical event log implemented
This commit is contained in:
@@ -10,6 +10,7 @@ import '../dmc_colors.dart';
|
||||
import '../providers/active_drone_profile_provider.dart';
|
||||
import '../providers/altitude_profile_provider.dart';
|
||||
import '../providers/mission_meta_provider.dart';
|
||||
import 'drone_status_warnings_panel.dart';
|
||||
import 'missions_drones_panel.dart';
|
||||
import 'mountain_peak_icon.dart';
|
||||
import 'paper_plane_icon.dart';
|
||||
@@ -59,6 +60,7 @@ class BottomStatsBar extends ConsumerWidget {
|
||||
required this.onSettingsTap,
|
||||
this.warnings = const [],
|
||||
this.onWarningsTap,
|
||||
this.forceShowWarningsButton = false,
|
||||
});
|
||||
|
||||
final int waypointCount;
|
||||
@@ -85,6 +87,14 @@ class BottomStatsBar extends ConsumerWidget {
|
||||
final List<MissionWarning> warnings;
|
||||
final VoidCallback? onWarningsTap;
|
||||
|
||||
/// Zeigt den Warnungs-Knopf auch ohne Mission-Warnungen (Doku: "der
|
||||
/// warnings tab laesst sich direkt erreichen ueber den existierenden
|
||||
/// warnings button") - im Fly-Modus sonst unerreichbar, sobald die
|
||||
/// Mission selbst keine Plan-Warnungen (Speed/Altitude/Range) hat, aber
|
||||
/// bereits kritische Live-Ereignisse (Doku: "log von kritischen
|
||||
/// ereignissen") vorliegen. Im Plan-Modus unveraendert false.
|
||||
final bool forceShowWarningsButton;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
final missionName = ref.watch(currentMissionMetaProvider).name;
|
||||
@@ -165,8 +175,15 @@ class BottomStatsBar extends ConsumerWidget {
|
||||
child: droneStatus != null
|
||||
? _DroneStatusPill(
|
||||
status: droneStatus!,
|
||||
// Oeffnet im Fly-Modus das neue Status-Menue
|
||||
// (Doku: "ein neues menue anlegen ... nach dem
|
||||
// vorbild des menues fuer drones and
|
||||
// missions") direkt auf dem Status-Tab, statt
|
||||
// wie zuvor die Drohnenprofil-Verwaltung -
|
||||
// Profile werden waehrend des Fluges ohnehin
|
||||
// nicht gewechselt.
|
||||
onTap: () => Navigator.of(context).push(MaterialPageRoute(
|
||||
builder: (_) => const MissionsDronesPanel.drones(),
|
||||
builder: (_) => const DroneStatusWarningsPanel.status(),
|
||||
)),
|
||||
)
|
||||
: _NameChip(
|
||||
@@ -184,7 +201,7 @@ class BottomStatsBar extends ConsumerWidget {
|
||||
),
|
||||
),
|
||||
const SizedBox(width: _footerElementSpacing),
|
||||
if (warnings.isNotEmpty) ...[
|
||||
if (warnings.isNotEmpty || forceShowWarningsButton) ...[
|
||||
_WarningButton(onTap: onWarningsTap),
|
||||
const SizedBox(width: _footerElementSpacing),
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user