disabled auto connect when switching to fly mode and no disconnect when leavin fly mode, race condition fix for connectionType ( now telemetry not working anymore), UI optimizations: centered speed and alt, zoom to mission uses full screen
This commit is contained in:
@@ -120,6 +120,14 @@ class FlyScreen extends ConsumerWidget {
|
||||
MediaQuery.of(context).padding.left,
|
||||
MediaQuery.of(context).padding.right,
|
||||
);
|
||||
// Gleiche Reservierung fuer die Fusszeile wie die Rad-Readouts im
|
||||
// Plan-Modus (PlanScreen: wheelBottomInset), damit die Alt/Speed-
|
||||
// Anzeige zwischen Kopf- und Fusszeile vertikal zentriert erscheint,
|
||||
// statt am Kartenrand zu kleben.
|
||||
final footerBottomInset = math.max(
|
||||
MediaQuery.of(context).size.height * 0.06,
|
||||
124.0,
|
||||
);
|
||||
final terrainProfile = ref.watch(terrainProvider).profile;
|
||||
final warnings = computeMissionWarnings(
|
||||
waypoints: waypoints,
|
||||
@@ -179,13 +187,15 @@ class FlyScreen extends ConsumerWidget {
|
||||
// Rad-Widget (curAlt/curSpeed) gibt, dessen Wert sinnvoll waere.
|
||||
Positioned(
|
||||
top: 56,
|
||||
bottom: footerBottomInset,
|
||||
left: 14 + safeEdgeInset,
|
||||
child: _liveReadout('Alt', telemetry?.altitudeM, 'm'),
|
||||
child: Center(child: _liveReadout('Alt', telemetry?.altitudeM, 'm')),
|
||||
),
|
||||
Positioned(
|
||||
top: 56,
|
||||
bottom: footerBottomInset,
|
||||
right: 14 + safeEdgeInset,
|
||||
child: _liveReadout('Speed', telemetry?.speedMs, 'm/s'),
|
||||
child: Center(child: _liveReadout('Speed', telemetry?.speedMs, 'm/s')),
|
||||
),
|
||||
Positioned(
|
||||
left: 0,
|
||||
|
||||
@@ -135,18 +135,15 @@ class _WifiPanel extends ConsumerWidget {
|
||||
final packetCount = ref.watch(wifiPacketCountProvider);
|
||||
final connectedSsid = ref.watch(wifiConnectedSsidProvider).value;
|
||||
|
||||
// MSP-Telemetrie nur beobachten, wenn der Transport bereits verbunden
|
||||
// ist - sonst wuerde allein das Oeffnen dieses Screens ueber
|
||||
// telemetryProvider einen neuen Verbindungsversuch (samt Systemdialog)
|
||||
// auslösen. Ist bereits eine echte Verbindung aktiv (z.B. weil der
|
||||
// Fly-Modus sie aufgebaut hat), liefert dies denselben Provider/dieselbe
|
||||
// MSP-Client-Instanz wie FlyScreen - keine zweite, konkurrierende
|
||||
// Abfrage-Schleife. Der Telemetrie-Strom selbst ist nicht auf einen
|
||||
// GPS-Fix gegated (siehe TelemetryFrame-Doku) - die Felder erscheinen
|
||||
// hier also auch ohne Fix, sobald ueberhaupt eine MSP-Antwort ankommt.
|
||||
final telemetry = linkState == LinkState.connected
|
||||
? ref.watch(telemetryProvider).value
|
||||
: null;
|
||||
// telemetryProvider loest selbst keinen Verbindungsversuch aus, solange
|
||||
// WLAN/MSP noch nicht ueber den "Connect"-Knopf verbunden ist (siehe
|
||||
// dortige Doku) - hier also gefahrlos unbedingt beobachtbar. Liefert bei
|
||||
// aktiver Verbindung denselben Provider/dieselbe MSP-Client-Instanz wie
|
||||
// FlyScreen - keine zweite, konkurrierende Abfrage-Schleife. Der
|
||||
// Telemetrie-Strom selbst ist nicht auf einen GPS-Fix gegated (siehe
|
||||
// TelemetryFrame-Doku) - die Felder erscheinen hier also auch ohne Fix,
|
||||
// sobald ueberhaupt eine MSP-Antwort ankommt.
|
||||
final telemetry = ref.watch(telemetryProvider).value;
|
||||
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
@@ -186,8 +183,12 @@ class _WifiPanel extends ConsumerWidget {
|
||||
SwitchListTile(
|
||||
contentPadding: EdgeInsets.zero,
|
||||
title: const Text('Auto-connect when entering Fly mode'),
|
||||
// Trigger aktuell bewusst deaktiviert (Doku: "kein connect beim
|
||||
// Wechsel in den Fly-Modus, um das Debuggen auf echter Hardware
|
||||
// zu vereinfachen") - die Einstellung bleibt fuer eine spaetere
|
||||
// Reaktivierung erhalten, wirkt sich derzeit aber auf nichts aus.
|
||||
subtitle: const Text(
|
||||
'Only once a network has been remembered.',
|
||||
'Currently inactive - connect manually above.',
|
||||
style: TextStyle(fontSize: 11),
|
||||
),
|
||||
value: connectionSettings?.connectionAutoConnect ?? true,
|
||||
|
||||
Reference in New Issue
Block a user