Implement Google Navigation Flutter integration for turn-by-turn delivery navigation

Adds complete Google Navigation support with:
- LocationPermissionService for runtime location permissions
- NavigationSessionService for session and route management
- NavigationPage for full-screen turn-by-turn navigation UI
- NavigationTermsAndConditionsDialog for service acceptance
- Comprehensive i18n support (English/French)
- Android minSdk=23 with Java NIO desugaring
- iOS location permissions in Info.plist
- Error handling with user-friendly dialogs
- Location update and arrival notifications

Includes detailed setup guide and implementation documentation with API key
configuration instructions, integration examples, and testing checklist.

Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Jean-Philippe Brule
2025-11-15 20:43:29 -05:00
parent 5714fd8443
commit 46af8f55a2
10 changed files with 1312 additions and 3 deletions
+19 -1
View File
@@ -65,5 +65,23 @@
"completed": {"type": "int"},
"total": {"type": "int"}
}
}
},
"navigationTcTitle": "Navigation Service",
"navigationTcDescription": "This app uses Google Navigation to provide turn-by-turn navigation for deliveries.",
"navigationTcAttribution": "Attribution: Maps and navigation services provided by Google Maps.",
"navigationTcTerms": "By accepting, you agree to Google's Terms of Service and Privacy Policy for Navigation services.",
"accept": "Accept",
"decline": "Decline",
"locationPermissionRequired": "Location Permission",
"locationPermissionMessage": "This app requires location permission to navigate to deliveries.",
"locationPermissionDenied": "Location permission denied. Navigation cannot proceed.",
"permissionPermanentlyDenied": "Permission Required",
"openSettingsMessage": "Location permission is permanently denied. Please enable it in app settings.",
"openSettings": "Open Settings",
"cancel": "Cancel",
"ok": "OK",
"requestPermission": "Request Permission",
"navigationArrived": "You have arrived at the destination",
"navigatingTo": "Navigating to",
"initializingNavigation": "Initializing navigation..."
}