mirror of
https://github.com/FoggedLens/deflock-app.git
synced 2026-08-11 13:40:20 +02:00
break up offline area monopoly
This commit is contained in:
@@ -4,6 +4,15 @@ A Flutter app for mapping and tagging ALPR-style cameras (and other surveillance
|
||||
|
||||
---
|
||||
|
||||
## Code Organization
|
||||
|
||||
This project uses a modular file/folder structure for maintainability:
|
||||
- **Settings sections** each live in their own file under `lib/screens/settings_screen_sections/`.
|
||||
- **Offline map area models, tile logic, and network/camera helpers** are grouped under `lib/services/offline_areas/`.
|
||||
- The main Settings and OfflineAreaService files are now slim front-ends that delegate logic to these modules.
|
||||
|
||||
---
|
||||
|
||||
## User Experience & Features
|
||||
|
||||
### Map View
|
||||
@@ -21,14 +30,16 @@ A Flutter app for mapping and tagging ALPR-style cameras (and other surveillance
|
||||
|
||||
### Offline Map Areas
|
||||
- **Download Any Region, Any Zoom:** Save the current map area at any zoom for true offline viewing.
|
||||
- **Intelligent Tile Management:** World tiles at zooms 1–4 are permanently available (via a protected offline area). All downloads include accurate tile and storage estimates.
|
||||
- **Intelligent Tile Management:** World tiles at zooms 1–4 are permanently available (via a protected offline area). All downloads include accurate tile and storage estimates, and never request duplicate or unnecessary tiles.
|
||||
- **Robust Downloading:** All tile/download logic uses serial fetching and exponential backoff for network failures, minimizing risk of OSM rate-limits and always respecting API etiquette.
|
||||
- **No Duplicates:** Only one world area; can be re-downloaded (refreshed) but never deleted or renamed.
|
||||
- **Camera Cache:** Download areas keep camera points in sync for full offline visibility—except the global area, which never attempts to fetch all world cameras.
|
||||
- **Settings Management:** Cancel, refresh, or remove downloads as needed. Progress, tile count, storage consumption, and cached camera count always displayed.
|
||||
|
||||
### Polished UX Features
|
||||
### Polished UX & Settings Architecture
|
||||
- **Permanent global base map:** Coverage for the entire world at zooms 1–4, always present.
|
||||
- **Smooth map gestures:** Double-tap to zoom even on markers; pinch zoom; camera popups distinguished from zoom.
|
||||
- **Modular Settings:** All major settings/queue/offline/camera management UI sections are cleanly separated for extensibility and rapid development.
|
||||
- **Order-preserving overlays:** Your location is always drawn on top for easy visibility.
|
||||
- **No more dead ends:** Disabling all profiles is impossible; canceling downloads is clean and instant.
|
||||
|
||||
@@ -48,9 +59,11 @@ A Flutter app for mapping and tagging ALPR-style cameras (and other surveillance
|
||||
## Roadmap
|
||||
|
||||
- **COMPLETE**:
|
||||
- Offline map area download/storage/camera overlay; cancel/retry; fast tile/camera/size estimates.
|
||||
- Offline map area download/storage/camera overlay; cancel/retry; fast tile/camera/size estimates; exponential backoff and robust retry logic for network outages or rate-limiting.
|
||||
- Pro-grade map UX (zoom bar, marker tap/double-tap, robust FABs).
|
||||
- Modularized, maintainable codebase using small service/helper files and section-separated UI components.
|
||||
- **SOON**:
|
||||
- "Offline mode" setting: map never hits the network and always provides a fallback tile for every view (no blank maps; graceful offline-first UX).
|
||||
- Resumable/robust interrupted downloads.
|
||||
- Further polish for edge cases (queue, error states).
|
||||
- **LATER**:
|
||||
|
||||
Reference in New Issue
Block a user