Sort direct repeaters by last updated time and SNR; limit to top three for improved path management dialog

This commit is contained in:
Winston Lowe
2026-02-15 21:09:30 -08:00
parent 52a578777d
commit a68e1dd428
+15 -8
View File
@@ -133,17 +133,24 @@ class _PathManagementDialog extends StatelessWidget {
builder: (context, connector, pathService, _) { builder: (context, connector, pathService, _) {
final currentContact = _resolveContact(connector); final currentContact = _resolveContact(connector);
final paths = pathService.getRecentPaths(currentContact.publicKeyHex); final paths = pathService.getRecentPaths(currentContact.publicKeyHex);
final directRepeaters = List.of(connector.directRepeaters)
..sort((a, b) => (b.snr).compareTo(a.snr)); final RepeatersList = List.of(connector.directRepeaters)
final directRepeater = directRepeaters.isEmpty ..sort((a, b) => b.lastUpdated.compareTo(a.lastUpdated));
final topSNRRepeaters = List.of(RepeatersList)
..sort((a, b) => b.snr.compareTo(a.snr));
final topThreeRepeaters = topSNRRepeaters.take(3).toList();
final directRepeater = topThreeRepeaters.isEmpty
? null ? null
: directRepeaters.first; : topThreeRepeaters.first;
final secondDirectRepeater = directRepeaters.length < 2 final secondDirectRepeater = topThreeRepeaters.length < 2
? null ? null
: directRepeaters.elementAt(1); : topThreeRepeaters.elementAt(1);
final thirdDirectRepeater = directRepeaters.length < 3 final thirdDirectRepeater = topThreeRepeaters.length < 3
? null ? null
: directRepeaters.elementAt(2); : topThreeRepeaters.elementAt(2);
return AlertDialog( return AlertDialog(
title: Text(l10n.chat_pathManagement), title: Text(l10n.chat_pathManagement),