follow mode behaviour tuned: load mission and jump to wayoinnt cancels follow mode

This commit is contained in:
Constantin Leue
2026-08-03 22:39:45 +02:00
parent ba14af8469
commit 4671b34f5b
4 changed files with 28 additions and 11 deletions
@@ -4,6 +4,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:latlong2/latlong.dart';
import '../../domain/waypoint/flat_waypoint_list.dart';
import 'follow_drone_provider.dart';
/// Ein einziger, app-lebenslanger MapController statt einer pro
/// PlanScreen-Mount neu erzeugten Instanz.
@@ -54,5 +55,16 @@ void fitMapControllerToWaypoints(MapController controller, List<Waypoint> waypoi
/// ConsumerStatefulWidget mit [WidgetRef]) - geteilt zwischen dem manuellen
/// Fit-Button (MapSearchControls/FlyMapControls) und den map-bezogenen
/// Warnungs-Aktionen (Doku 3.10).
void fitMapToWaypoints(WidgetRef ref, List<Waypoint> waypoints) =>
fitMapControllerToWaypoints(ref.read(mapControllerProvider), waypoints);
///
/// Beendet dabei immer auch den Kartenfolgemodus (followDroneProvider,
/// Doku 3.11) - dieser Fit bewegt die Kamera ueber denselben MapController
/// wie die Telemetrie-Nachfuehrung (source == mapController), FlyScreens
/// Abbruch bei manueller Karteninteraktion greift hier also nicht. Ohne
/// diesen expliziten Abbruch wuerde der naechste Telemetrie-Frame die
/// Kamera sofort wieder von der gerade eingestellten Uebersicht weg auf die
/// Drohne zurueckziehen. In Plan-Modus/Mock-Kontexten ohne aktiven
/// Folgemodus ist der Aufruf ein no-op.
void fitMapToWaypoints(WidgetRef ref, List<Waypoint> waypoints) {
ref.read(followDroneProvider.notifier).set(false);
fitMapControllerToWaypoints(ref.read(mapControllerProvider), waypoints);
}