mirror of
https://github.com/dz0ny/meshcore-sar.git
synced 2026-08-13 17:30:28 +00:00
feat: Add debug logging for drawing navigation and toolbar actions
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:latlong2/latlong.dart';
|
import 'package:latlong2/latlong.dart';
|
||||||
import '../models/location_trail.dart';
|
import '../models/location_trail.dart';
|
||||||
|
import '../models/map_drawing.dart';
|
||||||
|
|
||||||
class MapProvider with ChangeNotifier {
|
class MapProvider with ChangeNotifier {
|
||||||
LatLng? _targetLocation;
|
LatLng? _targetLocation;
|
||||||
@@ -46,8 +47,10 @@ class MapProvider with ChangeNotifier {
|
|||||||
|
|
||||||
/// Navigate to a drawing by its ID
|
/// Navigate to a drawing by its ID
|
||||||
void navigateToDrawing(String drawingId, dynamic drawingProvider) {
|
void navigateToDrawing(String drawingId, dynamic drawingProvider) {
|
||||||
|
debugPrint('🗺️ [MapProvider] navigateToDrawing called with ID: $drawingId');
|
||||||
// Find the drawing in the provider
|
// Find the drawing in the provider
|
||||||
final drawings = drawingProvider.drawings as List;
|
final drawings = drawingProvider.drawings as List;
|
||||||
|
debugPrint('🗺️ [MapProvider] Total drawings in provider: ${drawings.length}');
|
||||||
final drawing = drawings.cast<dynamic>().firstWhere(
|
final drawing = drawings.cast<dynamic>().firstWhere(
|
||||||
(d) => d.id == drawingId,
|
(d) => d.id == drawingId,
|
||||||
orElse: () => null,
|
orElse: () => null,
|
||||||
@@ -55,6 +58,7 @@ class MapProvider with ChangeNotifier {
|
|||||||
|
|
||||||
if (drawing == null) {
|
if (drawing == null) {
|
||||||
debugPrint('⚠️ [MapProvider] Drawing $drawingId not found');
|
debugPrint('⚠️ [MapProvider] Drawing $drawingId not found');
|
||||||
|
debugPrint('⚠️ [MapProvider] Available drawing IDs: ${drawings.map((d) => d.id).toList()}');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,7 +94,8 @@ class MapProvider with ChangeNotifier {
|
|||||||
zoom = 10.0;
|
zoom = 10.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
debugPrint('🗺️ [MapProvider] Navigating to drawing: ${drawing.type.name}, zoom: $zoom');
|
final typeStr = drawing is LineDrawing ? 'line' : 'rectangle';
|
||||||
|
debugPrint('🗺️ [MapProvider] Navigating to drawing: $typeStr, zoom: $zoom');
|
||||||
navigateToLocation(location: center, zoom: zoom, animate: true);
|
navigateToLocation(location: center, zoom: zoom, animate: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -694,6 +694,7 @@ class _MessagesTabState extends State<MessagesTab> {
|
|||||||
}
|
}
|
||||||
: message.isDrawing && message.drawingId != null
|
: message.isDrawing && message.drawingId != null
|
||||||
? () {
|
? () {
|
||||||
|
debugPrint('🗺️ [MessagesTab] Drawing tapped! ID: ${message.drawingId}');
|
||||||
final mapProvider = context
|
final mapProvider = context
|
||||||
.read<MapProvider>();
|
.read<MapProvider>();
|
||||||
final drawingProvider = context
|
final drawingProvider = context
|
||||||
@@ -1333,6 +1334,14 @@ class _MessageBubble extends StatelessWidget {
|
|||||||
debugPrint(' sarMarkerType: ${message.sarMarkerType}');
|
debugPrint(' sarMarkerType: ${message.sarMarkerType}');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (message.text.startsWith('D:')) {
|
||||||
|
debugPrint('🎨 [MessageBubble] Rendering drawing message:');
|
||||||
|
debugPrint(' Text: ${message.text.substring(0, message.text.length > 50 ? 50 : message.text.length)}...');
|
||||||
|
debugPrint(' isDrawing: ${message.isDrawing}');
|
||||||
|
debugPrint(' drawingId: ${message.drawingId}');
|
||||||
|
debugPrint(' onTap is null: ${onTap == null}');
|
||||||
|
}
|
||||||
|
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: onTap,
|
onTap: onTap,
|
||||||
onLongPress: () => _showMessageOptions(context),
|
onLongPress: () => _showMessageOptions(context),
|
||||||
|
|||||||
@@ -377,6 +377,13 @@ class DrawingToolbar extends StatelessWidget {
|
|||||||
);
|
);
|
||||||
|
|
||||||
if (!connectionProvider.deviceInfo.isConnected) {
|
if (!connectionProvider.deviceInfo.isConnected) {
|
||||||
|
debugPrint(' ❌ Not connected - showing error toast');
|
||||||
|
if (context.mounted) {
|
||||||
|
ToastLogger.error(
|
||||||
|
context,
|
||||||
|
AppLocalizations.of(context)!.notConnectedToDevice,
|
||||||
|
);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -390,6 +397,13 @@ class DrawingToolbar extends StatelessWidget {
|
|||||||
debugPrint(' Total drawings count: ${drawingProvider.drawings.length}');
|
debugPrint(' Total drawings count: ${drawingProvider.drawings.length}');
|
||||||
|
|
||||||
if (unsharedDrawings.isEmpty) {
|
if (unsharedDrawings.isEmpty) {
|
||||||
|
debugPrint(' ℹ️ No unshared drawings - showing info toast');
|
||||||
|
if (context.mounted) {
|
||||||
|
ToastLogger.info(
|
||||||
|
context,
|
||||||
|
'All drawings have already been shared',
|
||||||
|
);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user