Skip to content

Commit

Permalink
fix: reorder messages if timestamp ordering incorrect (#704)
Browse files Browse the repository at this point in the history
  • Loading branch information
kevmo314 authored Sep 10, 2022
1 parent 654cf0b commit 34b2dc3
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions lib/models/messages.dart
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,17 @@ class MessagesModel extends ChangeNotifier {
_subscription =
MessagesAdapter.instance.forChannel(channel).listen((event) {
if (event is AppendDeltaEvent) {
_messages.add(event.model);
_tts?.say(event.model);
// check if this event comes after the last message
if (_messages.isNotEmpty &&
_messages.last.timestamp.isAfter(event.model.timestamp)) {
// this message is out of order, so we need to insert it in the right place
final index = _messages.indexWhere(
(element) => element.timestamp.isAfter(event.model.timestamp));
_messages.insert(index, event.model);
} else {
_messages.add(event.model);
_tts?.say(event.model);
}
} else if (event is UpdateDeltaEvent) {
for (var i = 0; i < _messages.length; i++) {
final message = _messages[i];
Expand Down

0 comments on commit 34b2dc3

Please sign in to comment.