Add drawing sharing functionality and localization updates

- Implemented sharing options for drawings, including sharing to a public channel and specific rooms.
- Added confirmation dialogs for deleting drawings and sharing drawings.
- Enhanced the drawing toolbar to display a list of user's drawings with options to share or delete.
- Updated localization files for English, Spanish, French, Croatian, Italian, German, Slovenian, and other languages to include new strings related to drawing sharing and management.
- Introduced syncing of drawing messages with the DrawingProvider to restore missing drawings.
- Improved the drawing minimap preview to display a small preview of drawings in the toolbar.
This commit is contained in:
Janez T
2025-10-23 20:50:14 +02:00
parent 19603a1ad9
commit 9d923f8118
21 changed files with 941 additions and 61 deletions

View File

@@ -1596,15 +1596,16 @@ class _MessageBubble extends StatelessWidget {
else if (message.isDrawing && message.drawingId != null)
Consumer<DrawingProvider>(
builder: (context, drawingProvider, child) {
// Find the drawing by ID
final drawing = drawingProvider.drawings
.cast<MapDrawing?>()
.firstWhere(
(d) => d?.id == message.drawingId,
orElse: () => null,
);
// Find the drawing by ID (bypasses visibility filters)
final drawing = drawingProvider.getDrawingById(message.drawingId!);
if (drawing == null) {
debugPrint(
'⚠️ [MessageBubble] Drawing not found: ${message.drawingId}',
);
debugPrint(
' Total drawings in provider: ${drawingProvider.drawings.length}',
);
return Text(
message.text,
style: Theme.of(context).textTheme.bodyMedium,