feat(app,ui): add map-based location picker and geocoding
- introduce LocationPickerScreen with flutter_map for selecting and confirming locations, including markers and loading states - integrate manual location editing in ReviewScreen and persist updated coordinates/address in the report - add GeocodingService with Nominatim search, Photon fallback, reverse geocoding, debounced queries, caching, and timeouts - update i18n (en) with new map/location strings; remove unused onboarding and welcome texts
This commit is contained in:
@@ -33,6 +33,10 @@
|
||||
"btn.ok": "OK",
|
||||
"btn.yes": "Yes",
|
||||
"btn.no": "No",
|
||||
"btn.editLocation": "Edit Location",
|
||||
"btn.searchLocation": "Search Location",
|
||||
"btn.useThisLocation": "Use This Location",
|
||||
"btn.currentLocation": "Use Current Location",
|
||||
"label.category": "Category",
|
||||
"label.severity": "Severity",
|
||||
"label.status": "Status",
|
||||
@@ -81,20 +85,6 @@
|
||||
"settings.theme.dark": "Dark",
|
||||
"lang.en": "English",
|
||||
"lang.ms": "Bahasa Malaysia",
|
||||
"welcome.title": "Snap. Detect. Fix.",
|
||||
"welcome.subtitle": "Report city issues in seconds with AI-powered detection. Help create safer, better communities together.",
|
||||
"cta.continueGuest": "Continue as guest",
|
||||
"cta.signIn": "Sign in",
|
||||
"cta.skip": "Skip",
|
||||
"cta.next": "Next",
|
||||
"cta.getStarted": "Get started",
|
||||
"onboarding.header": "Welcome to CityPulse",
|
||||
"onboarding.title1": "Fast Issue Reporting",
|
||||
"onboarding.body1": "Simply take a photo of any urban issue - our AI automatically identifies and categorizes the problem in seconds.",
|
||||
"onboarding.title2": "Smart City Mapping",
|
||||
"onboarding.body2": "View all reported issues on an interactive map with intelligent clustering and filtering options.",
|
||||
"onboarding.title3": "Track Progress",
|
||||
"onboarding.body3": "Follow the status of your reports from submission to resolution. Help make your community better.",
|
||||
"auth.title": "Sign in",
|
||||
"auth.signInWithApple": "Sign in with Apple",
|
||||
"auth.signInWithGoogle": "Sign in with Google",
|
||||
@@ -153,5 +143,16 @@
|
||||
"confirm.logout.title": "Logout?",
|
||||
"confirm.logout.message": "You will be returned to the welcome screen.",
|
||||
"label.createdAt": "Created At",
|
||||
"error.clearData": "Failed to clear data"
|
||||
"error.clearData": "Failed to clear data",
|
||||
"map.searchHint": "Search for a location...",
|
||||
"map.selectLocation": "Select Location",
|
||||
"map.selectedLocation": "Selected Location",
|
||||
"map.confirmLocation": "Confirm this location?",
|
||||
"map.currentLocation": "Current Location",
|
||||
"map.searching": "Searching...",
|
||||
"map.noResults": "No results found",
|
||||
"map.moveMapToSelect": "Move the map to select a location",
|
||||
"map.loadingMap": "Loading map...",
|
||||
"map.gettingAddress": "Getting address...",
|
||||
"map.continueAnyway": "Continue Anyway"
|
||||
}
|
||||
Reference in New Issue
Block a user