diff --git a/modules/legacy/modules/location/lib/src/features/location/presentation/widgets/location_map.dart b/modules/legacy/modules/location/lib/src/features/location/presentation/widgets/location_map.dart index a0247850..8badc1d2 100644 --- a/modules/legacy/modules/location/lib/src/features/location/presentation/widgets/location_map.dart +++ b/modules/legacy/modules/location/lib/src/features/location/presentation/widgets/location_map.dart @@ -87,9 +87,12 @@ class _LocationMapState extends ConsumerState _startMonitoring(); } + static const _minFrequency = 60; + void _startMonitoring() { _followTimer?.cancel(); - final frequency = widget.selectedDevice?.settings.frequency ?? 60; + final raw = widget.selectedDevice?.settings.frequency ?? 60; + final frequency = raw < _minFrequency ? _minFrequency : raw; _followTimer = Timer.periodic(Duration(seconds: frequency), (_) { if (ref.read(selectedDeviceProvider).value?.isDisconnected ?? true) return; widget.onRefreshPosition(); @@ -244,7 +247,8 @@ class _LocationMapState extends ConsumerState if (!mounted) return; if (success) { _followTimer?.cancel(); - _followTimer = Timer.periodic(Duration(seconds: frequency), (_) { + final safeFrequency = frequency < _minFrequency ? _minFrequency : frequency; + _followTimer = Timer.periodic(Duration(seconds: safeFrequency), (_) { widget.onRefreshPosition(); }); showTopSnackbar( @@ -642,7 +646,9 @@ class _LocationMapState extends ConsumerState FrequencySelector( currentFrequency: ref.watch(selectedDeviceProvider).value?.settings.frequency ?? 60, - options: widget.selectedDevice!.capabilities!.location!.options, + options: widget.selectedDevice!.capabilities!.location!.options + .where((o) => o > 0) + .toList(), onChanged: _updateFrequency, ), ],