mirror of
https://github.com/FoggedLens/deflock-app.git
synced 2026-09-22 01:00:44 +02:00
Fix late background alerts and cache starvation
- Increase background refresh threshold: Raised the edge distance check in GpsController from 1000m to 2500m to guarantee new Overpass data is fetched well before the user drives out of the cached bounding box. - Fix bounding box race condition: Added await to the background fetch handler in MapView so tracking bounds only shift forward after the network request successfully finishes. - Make debounced fetches awaitable: Refactored fetchAndUpdate in NodeProviderWithCache to return a Future<void> using a Completer, bridging the 400ms debounce timer. - Prevent hanging futures: Added state checks for _activeCompleter to instantly resolve canceled network requests during rapid map panning, preventing fatal StateError crashes and infinite UI hangs.
This commit is contained in:
@@ -333,9 +333,9 @@ class GpsController {
|
||||
final minDist = [northDist, southDist, eastDist, westDist].reduce((a, b) => a < b ? a : b);
|
||||
|
||||
// Debug 2: Print the closest distance to the edge
|
||||
debugPrint('[GpsController-Background] Closest edge distance: ${minDist.toStringAsFixed(1)}m (Threshold: 1000m)');
|
||||
debugPrint('[GpsController-Background] Closest edge distance: ${minDist.toStringAsFixed(1)}m (Threshold: 2500m)');
|
||||
|
||||
if (minDist < 1000) {
|
||||
if (minDist < 2500) {
|
||||
debugPrint('[GpsController-Background] Threshold crossed. Triggering refresh.');
|
||||
needsRefresh = true;
|
||||
}
|
||||
@@ -554,4 +554,4 @@ class GpsController {
|
||||
_onMapMovedProgrammatically = null;
|
||||
_isUserInteracting = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user