Implement iOS permissions, navigation improvements, and UI fixes

Add comprehensive iOS permission handling and enhance navigation UX:

iOS Permissions Setup:
- Configure Podfile with permission macros (PERMISSION_LOCATION, PERMISSION_CAMERA, PERMISSION_PHOTOS)
- Add camera and photo library usage descriptions to Info.plist
- Enable location, camera, and photos permissions for permission_handler plugin
- Clean rebuild of iOS dependencies with updated configuration

Navigation Enhancements:
- Implement Google Navigation dark mode with custom map styling
- Add loading overlay during navigation initialization with progress messages
- Fix navigation flow with proper session initialization and error handling
- Enable followMyLocation API for continuous driver location tracking
- Auto-recenter camera on driver location when navigation starts
- Add mounted checks to prevent unmounted widget errors

UI/UX Improvements:
- Fix layout overlapping issues between map, header, and footer
- Add dynamic padding (110px top/bottom) to accommodate navigation UI elements
- Reposition navigation buttons to prevent overlap with turn-by-turn instructions
- Wrap DeliveriesPage body with SafeArea for proper system UI handling
- Add loading states and disabled button behavior during navigation start

Technical Details:
- Enhanced error logging with debug messages for troubleshooting
- Implement retry logic for navigation session initialization (30 retries @ 100ms)
- Apply dark mode style with 500ms delay for proper map rendering
- Use CameraPerspective.tilted for optimal driving view
- Remove manual camera positioning in favor of native follow mode

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Jean-Philippe Brule
2025-11-15 23:56:20 -05:00
parent 7eb4469034
commit 611e9eb2dd
4 changed files with 281 additions and 60 deletions
+5
View File
@@ -56,8 +56,13 @@
<key>UIBackgroundModes</key>
<array>
<string>location</string>
<string>fetch</string>
</array>
<key>NSLocationAlwaysUsageDescription</key>
<string>This app needs continuous access to your location for navigation and delivery tracking.</string>
<key>NSCameraUsageDescription</key>
<string>This app needs camera access to take photos of deliveries.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>This app needs access to your photos to select delivery images.</string>
</dict>
</plist>