mirror of
https://github.com/dz0ny/meshcore-sar.git
synced 2026-08-11 16:30:28 +00:00
Fix channel message dedup logic
This commit is contained in:
@@ -647,9 +647,8 @@ class MessagesProvider with ChangeNotifier {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
final timestampDeltaSeconds = (existing.senderTimestamp -
|
final timestampDeltaSeconds =
|
||||||
message.senderTimestamp)
|
(existing.senderTimestamp - message.senderTimestamp).abs();
|
||||||
.abs();
|
|
||||||
final withinChannelRepeatWindow = timestampDeltaSeconds <= 5;
|
final withinChannelRepeatWindow = timestampDeltaSeconds <= 5;
|
||||||
|
|
||||||
final existingSenderKey = existing.senderKeyShort;
|
final existingSenderKey = existing.senderKeyShort;
|
||||||
|
|||||||
@@ -176,29 +176,26 @@ void main() {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
test(
|
test('channel replay is deduped for self sender within repeat window', () {
|
||||||
'channel replay is deduped for self sender within repeat window',
|
final provider = MessagesProvider();
|
||||||
() {
|
provider.resolveContactNameCallback = (_) => 'dz0ny (SI)';
|
||||||
final provider = MessagesProvider();
|
provider.addSentMessage(
|
||||||
provider.resolveContactNameCallback = (_) => 'dz0ny (SI)';
|
_buildSentChannelMessage(id: 'c-echo', senderTimestamp: 1700000100),
|
||||||
provider.addSentMessage(
|
);
|
||||||
_buildSentChannelMessage(id: 'c-echo', senderTimestamp: 1700000100),
|
provider.markMessageSent('c-echo', 0, 0);
|
||||||
);
|
|
||||||
provider.markMessageSent('c-echo', 0, 0);
|
|
||||||
|
|
||||||
provider.addMessage(
|
provider.addMessage(
|
||||||
_buildReceivedChannelReplay(
|
_buildReceivedChannelReplay(
|
||||||
id: 'c-echo-incoming',
|
id: 'c-echo-incoming',
|
||||||
senderTimestamp: 1700000104,
|
senderTimestamp: 1700000104,
|
||||||
senderName: 'dz0ny (SI)',
|
senderName: 'dz0ny (SI)',
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
expect(provider.messages, hasLength(1));
|
expect(provider.messages, hasLength(1));
|
||||||
expect(provider.messages.single.id, equals('c-echo'));
|
expect(provider.messages.single.id, equals('c-echo'));
|
||||||
expect(provider.messages.single.senderName, equals('dz0ny (SI)'));
|
expect(provider.messages.single.senderName, equals('dz0ny (SI)'));
|
||||||
},
|
});
|
||||||
);
|
|
||||||
|
|
||||||
test(
|
test(
|
||||||
'channel replay is not deduped for different sender with same text',
|
'channel replay is not deduped for different sender with same text',
|
||||||
|
|||||||
Reference in New Issue
Block a user