diff --git a/lib/screens/contacts_screen.dart b/lib/screens/contacts_screen.dart index ec628e5..5572f9b 100644 --- a/lib/screens/contacts_screen.dart +++ b/lib/screens/contacts_screen.dart @@ -94,7 +94,7 @@ class _ContactsScreenState extends State { if (nss.connectionUpdateStatus.value) { return; } - manager.updateAllContacts(); + manager.updateAllContacts(false); return; }, child: Column( @@ -129,7 +129,8 @@ class _ContactsScreenState extends State { padding: const EdgeInsets.all(8.0), child: StatusAndRefreshButton( valueListenable: nss.connectionUpdateStatus, - refreshFunction: () async => manager.updateAllContacts(), + refreshFunction: () async => + manager.updateAllContacts(false), ), ) ], diff --git a/lib/services/connections_manager.dart b/lib/services/connections_manager.dart index 1a4a9c7..ad297ac 100644 --- a/lib/services/connections_manager.dart +++ b/lib/services/connections_manager.dart @@ -154,7 +154,7 @@ class ConnectionsManager extends ChangeNotifier { return conRepo.getMyContacts(); } - Future updateAllContacts() async { + Future updateAllContacts(bool backgroundUpdate) async { _logger.fine('Updating all contacts'); _lastUpdateStatus = 'Updating'; final persistentInfo = getIt>() @@ -163,6 +163,9 @@ class ConnectionsManager extends ChangeNotifier { final originalTime = persistentInfo.lastMyConnectionsUpdate; await persistentInfo.updateLastMyConnectionUpdate(DateTime.now()); notifyListeners(); + final delay = backgroundUpdate + ? const Duration(minutes: 5) + : const Duration(seconds: 10); try { final client = RelationshipsClient(profile); final results = {}; @@ -186,7 +189,7 @@ class ConnectionsManager extends ChangeNotifier { }, onError: (error) { _logger.severe('Error getting followers data: $error'); }); - await Future.delayed(Duration.zero); + await Future.delayed(delay); } moreResults = true; @@ -210,7 +213,7 @@ class ConnectionsManager extends ChangeNotifier { }, onError: (error) { _logger.severe('Error getting followers data: $error'); }); - await Future.delayed(Duration.zero); + await Future.delayed(delay); } for (final noLongerFollowed in originalContacts) { diff --git a/lib/update_timer_initialization.dart b/lib/update_timer_initialization.dart index e5973da..41ef0c5 100644 --- a/lib/update_timer_initialization.dart +++ b/lib/update_timer_initialization.dart @@ -41,7 +41,7 @@ Future executeUpdatesForProfile(Profile profile) async { if (dt >= _connectionsRefreshInterval) { await getIt>() .getForProfile(profile) - .withResultAsync((m) async => await m.updateAllContacts()) + .withResultAsync((m) async => await m.updateAllContacts(true)) .withError((error) { _logger.severe('Error running connections update: $error'); });