Track rögzítés vizuális visszajelzésének módosítása.

This commit is contained in:
2026-06-16 02:06:13 +02:00
parent beb07fe007
commit 537897005c
8 changed files with 695 additions and 42 deletions
+39 -9
View File
@@ -12,8 +12,11 @@ import 'package:terepi_seged/services/ntrip_service.dart';
import 'package:terepi_seged/widgets/appbar/gnss_status_strip.dart';
import 'package:terepi_seged/widgets/gnss_status_chip.dart';
import 'package:terepi_seged/widgets/map_mode_menu_anchor.dart';
import 'package:terepi_seged/widgets/tracking/track_recording_action.dart';
import '../tracking/tracking_sheet.dart';
import 'gnss_receiver_icon.dart';
import 'gnss_receiver_outline_icon.dart';
class ShellMapAppBar extends StatelessWidget implements PreferredSizeWidget {
final MapSurveyController controller;
@@ -32,6 +35,7 @@ class ShellMapAppBar extends StatelessWidget implements PreferredSizeWidget {
toolbarHeight: 50,
automaticallyImplyLeading: false,
//leadingWidth: 44,
actionsPadding: EdgeInsets.zero,
titleSpacing: 0,
leading: Builder(builder: (context) {
return IconButton(
@@ -110,19 +114,45 @@ class ShellMapAppBar extends StatelessWidget implements PreferredSizeWidget {
]),
actions: [
const GnssIconStatusChip(),
// Obx(() {
// final isRec = TrackingController.to.isRecording.value;
// return Badge(
// isLabelVisible: isRec,
// label: null, // csak piros pont, szám nélkül
// backgroundColor: Colors.red,
// child: IconButton(
// icon: const Icon(Icons.route_outlined),
// tooltip: 'Nyomvonal',
// onPressed: () => _openTrackingSheet(context),
// ),
// );
// }),
Obx(() {
final isRec = TrackingController.to.isRecording.value;
return Badge(
isLabelVisible: isRec,
label: null, // csak piros pont, szám nélkül
backgroundColor: Colors.red,
child: IconButton(
icon: const Icon(Icons.route_outlined),
tooltip: 'Nyomvonal',
onPressed: () => _openTrackingSheet(context),
final connected = controller.gpsIsConnected;
return IconButton(
tooltip: connected
? 'GNSS vevő csatlakozva'
: 'GNSS vevő nincs csatlakoztatva',
visualDensity: VisualDensity.compact,
padding: EdgeInsets.zero,
constraints: const BoxConstraints(
minWidth: 40,
minHeight: 44,
),
icon: GnssReceiverIcon(
size: 24,
color: connected
? Colors.green.shade700
: Theme.of(context).colorScheme.onSurfaceVariant,
),
onPressed: () {},
);
}),
TrackRecordingAction(
controller: TrackingController.to,
onTap: () => _openTrackingSheet(context),
),
PopupMenuButton(
tooltip: 'További funkciók',
icon: const Icon(Icons.more_vert),