Change polling interval

This commit is contained in:
2026-03-25 11:08:33 +01:00
parent b4ff5884b9
commit 5736edd802
2 changed files with 22 additions and 21 deletions
+7 -6
View File
@@ -10,7 +10,7 @@ import '../services/busylight_service.dart';
const _kHostKey = 'busylight_host';
const _kDefaultHost = 'http://igox-busylight.local';
const _kPollIntervalKey = 'busylight_poll_interval';
const _kDefaultPollInterval = 5; // seconds
const _kDefaultPollInterval = 1.0; // seconds
final sharedPreferencesProvider = FutureProvider<SharedPreferences>(
(_) => SharedPreferences.getInstance(),
@@ -21,9 +21,9 @@ final deviceHostProvider = StateProvider<String>((ref) {
return prefs?.getString(_kHostKey) ?? _kDefaultHost;
});
final pollIntervalProvider = StateProvider<int>((ref) {
final pollIntervalProvider = StateProvider<double>((ref) {
final prefs = ref.watch(sharedPreferencesProvider).valueOrNull;
return prefs?.getInt(_kPollIntervalKey) ?? _kDefaultPollInterval;
return prefs?.getDouble(_kPollIntervalKey) ?? _kDefaultPollInterval.toDouble();
});
// ── Service ──────────────────────────────────────────────────────────────────
@@ -161,10 +161,11 @@ class PollingNotifier extends StateNotifier<void> {
Timer? _timer;
void _start() {
final interval = _ref.read(pollIntervalProvider);
final intervalSeconds = _ref.read(pollIntervalProvider);
final intervalMillis = (intervalSeconds * 1000).toInt();
_timer?.cancel();
if (interval <= 0) return;
_timer = Timer.periodic(Duration(seconds: interval), (_) => _poll());
if (intervalMillis <= 0) return;
_timer = Timer.periodic(Duration(milliseconds: intervalMillis), (_) => _poll());
}
void restart() => _start();