fix: Enhance channel deduplication logic in loadChannels method

This commit is contained in:
Winston Lowe
2026-05-12 17:37:35 -07:00
parent f0bd61144c
commit 72fea3fc32
2 changed files with 12 additions and 2 deletions
+2 -1
View File
@@ -5151,7 +5151,8 @@ class MeshCoreConnector extends ChangeNotifier {
_channelSyncRetries = 0; // Reset retry counter on success
// Only add non-empty channels
if (!channel.isEmpty) {
if (!channel.isEmpty &&
_channels.any((c) => c.pskHex != channel.pskHex)) {
_channels.add(channel);
}
+10 -1
View File
@@ -42,9 +42,18 @@ class ChannelStore {
try {
final jsonList = jsonDecode(jsonString) as List<dynamic>;
return jsonList
final channels = jsonList
.map((entry) => _fromJson(entry as Map<String, dynamic>))
.toList();
// Deduplicate: keep the last entry per channel index
final seen = <int>{};
final deduped = <Channel>[];
for (final channel in channels.reversed) {
if (seen.add(channel.index)) {
deduped.add(channel);
}
}
return deduped.reversed.toList();
} catch (_) {
return [];
}