feat: Add debug logging for drawing navigation and toolbar actions

This commit is contained in:
Janez T
2025-10-23 20:29:51 +02:00
parent 1688d6f538
commit 795f223fe8
3 changed files with 29 additions and 1 deletions

View File

@@ -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);
} }

View File

@@ -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),

View File

@@ -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;
} }