Commit Graph

128 Commits

Author SHA1 Message Date
Janez T
3a20b756fd Add comprehensive tests for DrawingMessageParser and SarMessageParser
- Implement critical string formatting tests for DrawingMessageParser, ensuring correct message creation, parsing, and validation.
- Validate JSON structure, coordinate formatting, and color index preservation in drawing messages.
- Introduce tests for various drawing types, including LineDrawing and RectangleDrawing, with emphasis on output consistency and error handling.
- Add tests for SarMessageParser, covering message creation, parsing, and format validation, including backward compatibility with old formats.
- Ensure proper handling of special characters, empty notes, and extreme coordinate values in SAR messages.
- Validate that messages conform to the CLAUDE.md specification and maintain compactness and efficiency.
2025-10-26 16:51:38 +01:00
Janez T
cc4d666a94 feat: Update project version to 39 in project settings and Info.plist 2025-10-23 20:53:11 +02:00
Janez T
f15bad5715 feat: Sync drawings on app startup after provider initialization 2025-10-23 20:52:43 +02:00
Janez T
9d923f8118 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.
2025-10-23 20:50:14 +02:00
Janez T
19603a1ad9 feat: Add toast logger import to drawing toolbar for improved logging 2025-10-23 20:31:19 +02:00
Janez T
795f223fe8 feat: Add debug logging for drawing navigation and toolbar actions 2025-10-23 20:29:51 +02:00
Janez T
1688d6f538 feat: Enhance message handling for drawings
- Added properties to the Message model to track drawing status and associated drawing ID.
- Updated AppProvider to mark messages as drawings and link them to their respective drawing IDs.
- Enhanced DrawingProvider to manage received drawings and their visibility.
- Implemented navigation to drawings in MapProvider, including dynamic zoom levels based on drawing size.
- Updated MessagesProvider to parse drawing messages and manage linked drawings.
- Enhanced MessagesTab to support drawing message interactions, including navigation and coordinate copying.
- Created DrawingMinimapPreview widget for visual representation of drawings in message bubbles.
- Improved DrawingToolbar to handle sharing of drawings, ensuring only unshared drawings are sent.
- Added utility functions in DrawingMessageParser for extracting drawing metadata.
2025-10-23 20:14:51 +02:00
Janez T
f32667997e feat: Add localization for drawing actions and update related UI tooltips 2025-10-23 19:47:21 +02:00
Janez T
0a8d9a4dca feat: Update drawing menu to use SingleChildScrollView for better layout and localization 2025-10-23 19:42:59 +02:00
Janez T
d64c78542b refactor: Remove unnecessary toast notifications and improve code formatting 2025-10-23 19:36:24 +02:00
Janez T
200e506df8 feat: Add drawing tools localization and update SAR message handling 2025-10-23 19:33:35 +02:00
Janez T
98cda8c976 feat: Enhance SAR message handling with color indexing and localization
- Added `sarColorIndex` to `Message` and `SarMarker` models to support color indexing for SAR markers.
- Introduced a standard color palette in `SarTemplate` and methods to retrieve colors based on index.
- Updated `SarTemplate` to include localization for template names.
- Modified `SarUpdateSheet` and message sending logic to include color index in SAR messages.
- Enhanced `SarMessageParser` to support both old and new message formats with color index.
- Updated UI components to reflect changes in SAR marker color handling based on the new color index.
- Improved sample data generation to utilize localized strings for better testing and demonstration.
2025-10-23 19:17:13 +02:00
Janez T
b70eed1bf2 fix: Update core library desugaring dependency to version 2.1.4 2025-10-22 21:44:55 +02:00
Janez T
cde6decf06 fix: Update dependencies for file_picker, flutter_local_notifications, and vibration packages 2025-10-22 20:57:02 +02:00
Janez T
9a7e0da9bf fix: Remove Android App Bundle build and upload steps from CI workflow 2025-10-22 20:55:11 +02:00
Janez T
39c95ced95 feat: Add Linux desktop build support to CI/CD workflow
Add build-linux job to compile Linux x64 desktop application and
integrate it into the R2 upload and release workflows.

Changes:
- New build-linux job: Builds Flutter Linux desktop app with GTK-3
- Archives Linux build as tar.gz for distribution
- Added Linux artifact download in upload-to-r2 job
- Updated artifact preparation to copy Linux archives
- Added Linux download card (🐧) to generated index.html
- Included Linux artifacts in GitHub releases
- Added Linux to download summary in workflow output

The Linux build produces MeshCore-SAR-Linux.tar.gz containing the
compiled application bundle ready for x64 Linux systems.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 20:44:36 +02:00
Janez T
963bd8a8aa fix: Move checkout step before artifact downloads in R2 upload job
The actions/checkout@v4 step was running after downloading artifacts,
causing it to wipe out the downloaded files. This resulted in empty
build directories and missing artifacts in the index.html.

By moving checkout to the beginning of the upload-to-r2 job, artifacts
are downloaded after the repository is cloned, preserving all build
files for proper R2 upload.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-22 20:39:34 +02:00
Janez T
07f45005c5 fix: Enhance artifact copying logic to skip missing directories without failing the build 2025-10-22 20:20:27 +02:00
Janez T
0955d0feab fix: Improve artifact handling by removing old files and selecting the latest builds 2025-10-22 20:05:27 +02:00
Janez T
18cbdf678d fix: Allow artifact index and manifest generation to continue on error 2025-10-22 19:27:37 +02:00
Janez T
3d678151af fix: Allow artifact preparation to continue on error during upload 2025-10-22 19:26:56 +02:00
Janez T
6046c97d73 fix: Ensure optional artifact absence does not fail the build step 2025-10-22 19:26:42 +02:00
Janez T
51fe2ee016 fix: Improve artifact verification and handling in CI workflow 2025-10-22 19:14:00 +02:00
Janez T
581521ff2e feat: Enhance artifact downloading and uploading process in CI workflow 2025-10-22 17:33:48 +02:00
Janez T
049199fdfb feat: Enhance artifact handling in CI workflow with verification and manifest generation 2025-10-22 17:18:50 +02:00
Janez T
0d12ca0ae7 feat: Add download page details and structure for build artifacts in R2 setup documentation 2025-10-22 16:52:17 +02:00
Janez T
2e8f4ed6e0 fix: Correctly set BASE_URL for unstable build artifacts in GitHub Actions workflow 2025-10-22 12:21:11 +02:00
Janez T
5b6b606b0e feat: Add Fastlane TestFlight setup documentation for CI/CD pipeline 2025-10-22 12:20:56 +02:00
Janez T
01c7169a33 feat: Add Cloudflare R2 setup documentation and update CI/CD workflow for artifact uploads 2025-10-22 12:11:26 +02:00
Janez T
0092bad3bf refactor: Clean up unused variables and comments in AppProvider and DeviceConfigScreen 2025-10-22 12:02:44 +02:00
Janez T
53ed690f51 Refactor code for improved readability and consistency across multiple files
- Updated formatting in `drawing_toolbar.dart` for better readability, including breaking long lines and ensuring consistent indentation.
- Enhanced the `recipient_selector_sheet.dart` by adjusting line breaks and improving the layout of text styles.
- Refactored `sar_update_sheet.dart` to improve readability, including restructuring widget layouts and ensuring consistent formatting.
- Cleaned up imports and removed unnecessary lines in `widget_test.dart`.
2025-10-22 09:49:41 +02:00
Janez T
021ce21cbe Refactor SAR marker handling and add template management
- Updated CompassSarList and DetailedCompassDialog to use marker.displayName instead of marker.type.displayName.
- Enhanced DrawingLayer and DrawingMarkersLayer to support simple mode for drawing visibility and interaction.
- Added toggle switches in DrawingToolbar for showing/hiding received drawings and SAR markers.
- Modified MapMarkers to utilize custom emojis and display names for markers.
- Introduced RecipientSelectorSheet for selecting message recipients with search functionality.
- Refactored SarUpdateSheet to use SAR templates instead of marker types, allowing for emoji and name customization.
- Created SarTemplateEditDialog for adding and editing SAR templates with color selection and preview.
2025-10-21 23:44:49 +02:00
Janez T
e9d516b749 feat: Enhance message sending in MessagesTab with message ID and improved status handling 2025-10-20 13:54:07 +02:00
Janez T
596ae6c5a0 feat: Configure default public channel with well-known secret and enhance channel message handling 2025-10-18 23:29:47 +02:00
Janez T
5315e58247 feat: Enhance message synchronization with response handling and improve logging in MessagesTab 2025-10-18 23:05:00 +02:00
Janez T
27ed4b0486 Refactor logging to use debugPrint for better performance in debug mode
- Updated all print statements in services and widgets to use debugPrint.
- This change improves logging performance and ensures that debug messages are only shown in debug builds.
- Removed unnecessary transitive dependencies from pubspec.lock.
- Cleaned up pubspec.yaml by removing integration_test from dev_dependencies.
2025-10-18 22:50:57 +02:00
Janez T
198cee685a feat: Enhance BLE response handling with detailed logging and echo detection improvements 2025-10-18 22:47:35 +02:00
Janez T
52b2f4ede1 Add localization support for German, Spanish, French, and Italian
- Updated localization files for French, Croatian, Italian, Slovenian to include translations for German, Spanish, French, and Italian.
- Added new methods for handling drawing messages sent to the public channel in multiple languages.
- Enhanced the Contact model to identify public channels using a dedicated method.
- Implemented echo detection for public channel messages, including tracking and reporting of echoes.
- Updated BLE response handling to support echo detection and tracking of sent messages.
- Modified UI components to reflect new localization strings and echo statuses.
2025-10-18 22:39:26 +02:00
Janez T
da03592980 Add Slovenian localization for trail management and device configuration
- Updated `app_localizations_sl.dart` with new strings for trail management, device information, and error messages.
- Enhanced `app_sl.arb` with corresponding translations for the new strings.
- Refactored `device_config_screen.dart` to utilize localized strings for device information and error handling.
- Modified `map_tab.dart` to remove unused trail stats overlay.
- Improved `ble_response_handler.dart` to include additional debug information for parsed contacts and advertisements.
- Updated `trail_controls.dart` to use localized strings for trail management UI, including trail visibility toggle and confirmation dialogs.
2025-10-18 21:35:47 +02:00
Janez T
00b239ab26 feat: Update project version to 32 and enhance BLE command handling 2025-10-18 21:13:51 +02:00
Janez T
c50a260263 feat: Implement command queue for BLE command handling
- Added BleCommandQueue to manage command serialization and responses in BleCommandSender.
- Updated writeData, writeDataAndWaitForAck, and writeDataAndWaitForResponse methods to utilize the command queue.
- Enhanced BleResponseHandler to complete commands based on responses received from the BLE device.
- Introduced new commands for channel management, including getChannel and setChannel.
- Created LocationTrailLayer and TrailControls widgets for displaying and managing location trails on the map.
- Added PermissionRequestDialog to handle location permission requests on app startup.
- Updated LocationTrackingService to allow GPS tracking without a BLE connection.
2025-10-18 21:12:02 +02:00
Janez T
f88c9cfdd3 feat: Update permissions and project version, enhance app icons 2025-10-18 15:02:54 +02:00
Janez T
5fd090b5dc feat: Enhance device configuration and location tracking features
- Refetch device info after updating settings in device_config_screen.dart.
- Update map_tab.dart to use singleton instance of LocationTrackingService and streamline location tracking callbacks.
- Modify ble_response_handler.dart to handle contact not found errors and improve error callback structure.
- Enhance location_tracking_service.dart with retry logic for GPS position acquisition and initial position setting without broadcasting.
- Update meshcore_ble_service.dart to track last contact for auto-recovery on errors.
- Improve tile_cache_service.dart error messages and streamline tile download logic.
- Add current GPS location insertion feature in direct_message_sheet.dart with permission checks.
- Update pubspec.lock and pubspec.yaml to include integration_test dependency.
- Add screenshot automation script for iOS and Android devices.
- Create integration test driver for screenshot capturing.
2025-10-18 14:55:41 +02:00
Janez T
3a0bcabdea feat: Add support for offline vector maps using MBTiles
- Introduced new MapLayerType for vector MBTiles.
- Enhanced MapLayer class to handle vector-specific properties.
- Implemented MBTilesService for managing MBTiles files, including import and deletion functionalities.
- Updated MapManagementScreen to allow importing and managing MBTiles files.
- Added UI components for displaying and interacting with MBTiles layers.
- Integrated vector tile rendering in MapTab, supporting dynamic theme loading.
- Updated pubspec.yaml to include necessary dependencies for MBTiles and vector tiles.
2025-10-16 23:35:43 +02:00
Janez T
7f20e5ad36 feat: Bump project version to 21 and update related files 2025-10-16 22:20:03 +02:00
Janez T
16505cbfe4 feat: Update project version to 20, add new permissions for Flutter commands, and upgrade dependencies including share_plus 2025-10-16 22:19:00 +02:00
Janez T
e74ebda54d feat: Update project version to 19, add repeaters filter and theme support, and enhance contact list display 2025-10-16 21:43:19 +02:00
Janez T
58d8ef0dae feat: Implement location tracking service and haptic feedback for device advertising 2025-10-16 21:27:22 +02:00
Janez T
c6c56f858d feat: Add localization support for contact and SAR marker display names 2025-10-16 21:09:33 +02:00
Janez T
b6283e1c8f Remove old app icons and update Info.plist version; add radio settings localization and improve device configuration UI 2025-10-16 21:01:29 +02:00