diff --git a/lib/providers/map_provider.dart b/lib/providers/map_provider.dart index a0b9377..3e40505 100644 --- a/lib/providers/map_provider.dart +++ b/lib/providers/map_provider.dart @@ -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().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); } diff --git a/lib/screens/messages_tab.dart b/lib/screens/messages_tab.dart index 012d3ed..4dfcb10 100644 --- a/lib/screens/messages_tab.dart +++ b/lib/screens/messages_tab.dart @@ -694,6 +694,7 @@ class _MessagesTabState extends State { } : message.isDrawing && message.drawingId != null ? () { + debugPrint('đŸ—ēī¸ [MessagesTab] Drawing tapped! ID: ${message.drawingId}'); final mapProvider = context .read(); 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), diff --git a/lib/widgets/map/drawing_toolbar.dart b/lib/widgets/map/drawing_toolbar.dart index 577e437..0dfef99 100644 --- a/lib/widgets/map/drawing_toolbar.dart +++ b/lib/widgets/map/drawing_toolbar.dart @@ -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; }