Commit Graph

94 Commits

Author SHA1 Message Date
Janez T
5d943ff1a4 feat: Add welcome wizard for new users
- Implemented a multi-page welcome wizard to introduce new users to the app's features.
- Added localization support for the wizard in English, Spanish, French, Croatian, Italian, and Slovenian.
- Integrated wizard completion state management using SharedPreferences.
- Updated main app flow to show the wizard if it hasn't been completed.
- Added a settings option to view the welcome tutorial again.
2025-10-28 11:20:30 +01:00
Janez T
e7fe700fee feat: Add GPX import/export functionality and enhance trail management
- Implemented GPX export and import features in GpxService for location trails.
- Added UI controls for exporting and importing trails in the TrailControls widget.
- Introduced localization strings for GPX operations in Italian and Slovenian.
- Enhanced MapProvider to manage imported trails and toggle visibility for contact trails.
- Updated trail color management with TrailColorService for consistent color assignment based on contact roles.
- Improved UI for displaying contact trails with toggle options for individual and all contact trails.
- Refactored detailed compass dialog to remove unnecessary path toggle button for contacts.
2025-10-28 11:04:09 +01:00
Janez T
d4bc847530 feat: Improve compass event handling to prevent errors on disposed widget 2025-10-28 10:26:20 +01:00
Janez T
cf8a498864 feat: Refactor add channel button implementation and update visibility logic 2025-10-28 10:19:28 +01:00
Janez T
e6289199ba Add channel management features and localization support
- Implemented functionality to add new channels with a dialog interface.
- Added validation for channel name and secret inputs, ensuring they meet specified criteria.
- Integrated channel creation logic into the connection provider, including automatic slot assignment and MD5 hashing for channel secrets.
- Updated localization files for multiple languages (Spanish, French, Croatian, Italian, German, Slovenian, and English) to include new channel-related strings.
- Enhanced the contacts tab to display the add channel button conditionally based on device connection status.
- Refactored the contacts tab to improve readability and maintainability.
2025-10-28 10:17:02 +01:00
Janez T
b980fb80f1 feat: Add recent messages overlay to map in fullscreen mode and update localization for recent messages 2025-10-28 00:14:14 +01:00
Janez T
8c05c331e2 feat: Refine measurement mode behavior and add ruler button in simple mode 2025-10-27 22:38:42 +01:00
Janez T
f707e2233b feat: Add zoom level clamping for WMS layer switching and improve message filtering in simple mode 2025-10-27 22:28:46 +01:00
Janez T
b4bbaf3109 feat: Implement language-based filtering for WMS layers in Slovenian and Croatian 2025-10-27 21:55:00 +01:00
Janez T
a4dc85d130 Add WMS support and measurement functionality
- Implemented WMS layer handling for Slovenian aerial imagery and overlays for cadastral parcels and forest roads.
- Added distance measurement feature allowing users to measure distances on the map with long press interactions.
- Updated localization files for Croatian, Italian, and Slovenian languages to include new measurement and WMS-related strings.
- Enhanced the map layer model to support WMS-specific properties.
- Introduced a new tile provider for debugging WMS requests.
- Updated the drawing toolbar to include measurement mode and clear measurement functionality.
- Integrated SharedPreferences to persist overlay visibility states across app sessions.
- Added utility functions for handling the Slovenian coordinate reference system (EPSG:3794).
2025-10-27 21:49:58 +01:00
Janez T
676f5341b6 feat: Add URL launcher dependency and implement more info button in settings 2025-10-26 17:33:01 +01:00
Janez T
cec092b8c0 feat: Add functionality to save SAR messages as templates with corresponding localization 2025-10-26 17:22:39 +01:00
Janez T
a6fbc10221 feat: Enhance contact telemetry updates with last seen timestamp and improve message bubble UI for SAR and drawing indicators 2025-10-26 17:04:25 +01:00
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
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
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
d64c78542b refactor: Remove unnecessary toast notifications and improve code formatting 2025-10-23 19:36:24 +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
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
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
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
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
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
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
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
Janez T
09e53e579a feat: Implement notification service for SAR messages and add localization support 2025-10-16 16:31:35 +02:00
Janez T
d69355a9b8 feat: Add localized delivery status and time ago for messages 2025-10-16 16:10:25 +02:00
Janez T
f95edcb477 fix: Update import path for AppLocalizations in CompassSarList widget 2025-10-16 16:07:22 +02:00
Janez T
01a1bbec44 Refactor localization in UI components and error messages
- Updated various UI components to utilize AppLocalizations for better internationalization support.
- Replaced hardcoded strings with localized strings in home_screen.dart, ble_connection_manager.dart, contact_tile.dart, room_login_sheet.dart, compass widgets, and sar_update_sheet.dart.
- Improved user feedback messages by integrating localization for actions like pinging contacts, displaying connection statuses, and error notifications.
- Enhanced the clarity of UI elements by ensuring all text is translatable, improving the overall user experience for non-English speakers.
2025-10-16 15:39:48 +02:00
Janez T
1056380f3a Add localization support for various UI elements and messages
- Integrated localization for alert dialogs, snack bars, and button labels in PacketLogScreen and SettingsScreen.
- Updated location tracking service messages to use localized strings.
- Enhanced ContactTile and DirectMessageSheet with localized text for user interactions.
- Implemented localization in DrawingLayer and DrawingToolbar for map-related actions.
- Updated SAR Update Sheet to utilize localized strings for user prompts and actions.
- Ensured consistent use of localization across all relevant widgets and screens.
2025-10-16 15:19:05 +02:00
Janez T
3a8eac2ec2 feat: Enhance home screen status bar with connection indicators and improved layout 2025-10-16 14:54:25 +02:00
Janez T
4c8e0e5d61 Add Croatian and Slovenian localizations, implement locale preferences, and update settings screen
- Created `app_localizations_hr.dart` and `app_localizations_sl.dart` for Croatian and Slovenian translations.
- Added `app_sl.arb` file for Slovenian localization strings.
- Enhanced `main.dart` to support locale selection and initialization.
- Updated `home_screen.dart` and `settings_screen.dart` to handle locale changes and display current language.
- Implemented `locale_preferences.dart` service for managing locale settings using SharedPreferences.
- Modified `pubspec.yaml` to include `flutter_localizations` and enable localization file generation.
2025-10-16 14:42:43 +02:00
Janez T
95333a13b8 feat: Refactor home screen layout to improve button visibility and RX/TX indicators 2025-10-16 14:29:15 +02:00
Janez T
c05ae8de89 feat: Enhance home screen layout with RX/TX indicators and device config button 2025-10-16 14:26:48 +02:00
Janez T
9ab5469759 feat: Add RX/TX indicators preference with toggle in settings 2025-10-16 14:25:15 +02:00
Janez T
9c1922b4fd feat: Update project version to 11 and enhance BLE packet logging with RSSI and SNR information 2025-10-16 14:20:40 +02:00
Janez T
bf4305bdb3 feat: Enhance BLE connection strength indicator with RSSI display and adjust spacing 2025-10-16 13:53:08 +02:00
Janez T
520f343261 feat: Remove manual location update functionality and improve password handling in room login 2025-10-16 13:44:35 +02:00
Janez T
23c439a92e Refactor message handling and enhance BLE connection management
- Cleaned up message formatting in MessagesTab for better readability.
- Improved SAR message parsing to include optional inline messages.
- Updated BLE connection manager to monitor RSSI values and added callback for RSSI updates.
- Adjusted drawing message parser to remove sender name from JSON and extract it from packet metadata.
- Enhanced drawing toolbar to reflect changes in message creation without sender name.
- Ensured consistent error handling and logging across BLE operations.
2025-10-16 13:32:58 +02:00
Janez T
800786ec9c feat: Enhance drawing functionality with sender tracking and sharing capabilities 2025-10-15 22:41:57 +02:00
Janez T
317addba9e feat: Update project version to 5 and adjust fullscreen button position in map tab 2025-10-15 22:16:24 +02:00
Janez T
6ee1c9ae79 feat: Update color handling in map drawings and enhance message sync functionality 2025-10-15 22:13:15 +02:00
Janez T
3651f53ef2 feat: Add drawing functionality with line and rectangle support, including toolbar and layer integration 2025-10-15 22:04:23 +02:00