From 7d20b56583a4a5fa8d3ae64c0f5f05957d6d8ce8 Mon Sep 17 00:00:00 2001 From: JulianAlcala Date: Sun, 26 Apr 2026 09:01:26 +0200 Subject: [PATCH] refactor(heartbeat): refresh devices every 2min instead of pinging /auth/me --- .../lib/providers/legacy_heartbeat_service.dart | 15 ++++++++------- apps/mobile_app/lib/save_family_app.dart | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/apps/mobile_app/lib/providers/legacy_heartbeat_service.dart b/apps/mobile_app/lib/providers/legacy_heartbeat_service.dart index 3b0991ab..95099e44 100644 --- a/apps/mobile_app/lib/providers/legacy_heartbeat_service.dart +++ b/apps/mobile_app/lib/providers/legacy_heartbeat_service.dart @@ -2,20 +2,21 @@ import 'dart:async'; import 'package:dio/dio.dart'; import 'package:flutter/foundation.dart'; -import 'package:sf_infrastructure/sf_infrastructure.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart' show WidgetRef; +import 'package:sf_shared/sf_shared.dart'; class LegacyHeartbeatService { LegacyHeartbeatService({ - required SaveFamilyRepository repository, + required WidgetRef ref, required void Function() onUnauthorized, - }) : _repository = repository, + }) : _ref = ref, _onUnauthorized = onUnauthorized; - final SaveFamilyRepository _repository; + final WidgetRef _ref; final void Function() _onUnauthorized; Timer? _timer; - static const _interval = Duration(minutes: 3); + static const _interval = Duration(minutes: 2); void start() { if (_timer != null) return; @@ -32,8 +33,8 @@ class LegacyHeartbeatService { Future _beat() async { try { - await _repository.get('/auth/me'); - debugPrint('[LegacyHeartbeat] /auth/me => OK'); + await _ref.read(legacyDevicesProvider.notifier).refresh(); + debugPrint('[LegacyHeartbeat] devices refreshed'); } catch (e) { debugPrint('[LegacyHeartbeat] error: $e'); if (e is DioException && e.response?.statusCode == 401) { diff --git a/apps/mobile_app/lib/save_family_app.dart b/apps/mobile_app/lib/save_family_app.dart index 48b62448..50c4e2e2 100644 --- a/apps/mobile_app/lib/save_family_app.dart +++ b/apps/mobile_app/lib/save_family_app.dart @@ -60,7 +60,7 @@ class SaveFamilyAppState extends ConsumerState if (isLegacyMode) { _legacyHeartbeat = LegacyHeartbeatService( - repository: GetIt.I(), + ref: ref, onUnauthorized: () { clearSessionData(); appRouter.go(AppRoutes.legacyLogin);