Tracking funkció fejlesztése

This commit is contained in:
2026-06-11 01:20:55 +02:00
parent 2364b2311c
commit 01e6105240
18 changed files with 858 additions and 162 deletions
@@ -29,6 +29,7 @@ import 'package:shared_preferences/shared_preferences.dart';
import 'package:terepi_seged/pages/map_survey/presentations/views/measured_points_table_dialog.dart';
import 'package:terepi_seged/pages/ntrip_settings/presentation/controllers/ntrip_settings_controller.dart';
import 'package:terepi_seged/pages/ntrip_settings/presentation/views/ntrip_settings_sheet.dart';
import 'package:terepi_seged/pages/tracking/presentation/controllers/tracking_controller.dart';
import 'package:terepi_seged/services/coord_converter_service.dart';
import 'package:terepi_seged/services/gnss/gnss_connection.dart';
import 'package:terepi_seged/services/gnss/gnss_device_service.dart';
@@ -285,6 +286,18 @@ class MapSurveyController extends GetxController {
}
void setMode(MapSurveyMode newMode) {
if (mode.value == MapSurveyMode.track &&
newMode != MapSurveyMode.track &&
TrackingController.to.isRecording.value) {
Get.snackbar(
'Rögzítés folytatódik',
'A track rögzítés a háttérben aktív marad.',
icon: const Icon(Icons.fiber_manual_record, color: Colors.red),
duration: const Duration(seconds: 3),
snackPosition: SnackPosition.TOP,
);
}
mode.value = newMode;
// Itt lehet módhoz kötött állapotokat állítani:
@@ -294,31 +307,21 @@ class MapSurveyController extends GetxController {
// - track indítás/leállítás figyelmeztetés stb.
}
String get currentModeLabel {
switch (mode.value) {
case MapSurveyMode.browse:
return 'Térkép';
case MapSurveyMode.measure:
return 'Bemérés';
case MapSurveyMode.stakeout:
return 'Kitűzés';
case MapSurveyMode.fieldWalk:
return 'Bejárás';
}
}
String get currentModeLabel => switch (mode.value) {
MapSurveyMode.browse => 'Térkép',
MapSurveyMode.measure => 'Bemérés',
MapSurveyMode.stakeout => 'Kitűzés',
MapSurveyMode.fieldWalk => 'Bejárás',
MapSurveyMode.track => 'Útvonal'
};
IconData get currentModeIcon {
switch (mode.value) {
case MapSurveyMode.browse:
return Icons.map;
case MapSurveyMode.measure:
return Icons.add_location_alt;
case MapSurveyMode.stakeout:
return Icons.gps_fixed;
case MapSurveyMode.fieldWalk:
return Icons.hiking;
}
}
IconData get currentModeIcon => switch (mode.value) {
MapSurveyMode.browse => Icons.map,
MapSurveyMode.measure => Icons.add_location_alt,
MapSurveyMode.stakeout => Icons.gps_fixed,
MapSurveyMode.fieldWalk => Icons.hiking,
MapSurveyMode.track => Icons.route
};
void openNtripsettings() {
if (!Get.isRegistered<NtripSettingsController>()) {