mirror of
https://github.com/dz0ny/meshcore-sar.git
synced 2026-08-11 16: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:latlong2/latlong.dart';
|
||||
import '../models/location_trail.dart';
|
||||
import '../models/map_drawing.dart';
|
||||
|
||||
class MapProvider with ChangeNotifier {
|
||||
LatLng? _targetLocation;
|
||||
@@ -46,8 +47,10 @@ class MapProvider with ChangeNotifier {
|
||||
|
||||
/// Navigate to a drawing by its ID
|
||||
void navigateToDrawing(String drawingId, dynamic drawingProvider) {
|
||||
debugPrint('🗺️ [MapProvider] navigateToDrawing called with ID: $drawingId');
|
||||
// Find the drawing in the provider
|
||||
final drawings = drawingProvider.drawings as List;
|
||||
debugPrint('🗺️ [MapProvider] Total drawings in provider: ${drawings.length}');
|
||||
final drawing = drawings.cast<dynamic>().firstWhere(
|
||||
(d) => d.id == drawingId,
|
||||
orElse: () => null,
|
||||
@@ -55,6 +58,7 @@ class MapProvider with ChangeNotifier {
|
||||
|
||||
if (drawing == null) {
|
||||
debugPrint('⚠️ [MapProvider] Drawing $drawingId not found');
|
||||
debugPrint('⚠️ [MapProvider] Available drawing IDs: ${drawings.map((d) => d.id).toList()}');
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -90,7 +94,8 @@ class MapProvider with ChangeNotifier {
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@@ -694,6 +694,7 @@ class _MessagesTabState extends State<MessagesTab> {
|
||||
}
|
||||
: message.isDrawing && message.drawingId != null
|
||||
? () {
|
||||
debugPrint('🗺️ [MessagesTab] Drawing tapped! ID: ${message.drawingId}');
|
||||
final mapProvider = context
|
||||
.read<MapProvider>();
|
||||
final drawingProvider = context
|
||||
@@ -1333,6 +1334,14 @@ class _MessageBubble extends StatelessWidget {
|
||||
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(
|
||||
onTap: onTap,
|
||||
onLongPress: () => _showMessageOptions(context),
|
||||
|
||||
@@ -377,6 +377,13 @@ class DrawingToolbar extends StatelessWidget {
|
||||
);
|
||||
|
||||
if (!connectionProvider.deviceInfo.isConnected) {
|
||||
debugPrint(' ❌ Not connected - showing error toast');
|
||||
if (context.mounted) {
|
||||
ToastLogger.error(
|
||||
context,
|
||||
AppLocalizations.of(context)!.notConnectedToDevice,
|
||||
);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -390,6 +397,13 @@ class DrawingToolbar extends StatelessWidget {
|
||||
debugPrint(' Total drawings count: ${drawingProvider.drawings.length}');
|
||||
|
||||
if (unsharedDrawings.isEmpty) {
|
||||
debugPrint(' ℹ️ No unshared drawings - showing info toast');
|
||||
if (context.mounted) {
|
||||
ToastLogger.info(
|
||||
context,
|
||||
'All drawings have already been shared',
|
||||
);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user