This commit is contained in:
otsmr 2025-03-30 22:44:10 +02:00
parent 61763498dc
commit dfcfeb6110
2 changed files with 15 additions and 1 deletions

View file

@ -144,6 +144,13 @@ class MessagesDao extends DatabaseAccessor<TwonlyDatabase>
return (delete(messages)..where((t) => t.messageId.equals(messageId))).go();
}
Future<bool> containsOtherMessageId(int messageOtherId) async {
final query = select(messages)
..where((t) => t.messageOtherId.equals(messageOtherId));
final entry = await query.getSingleOrNull();
return entry == null;
}
SingleOrNullSelectable<Message> getMessageByMessageId(int messageId) {
return select(messages)..where((t) => t.messageId.equals(messageId));
}

View file

@ -225,7 +225,7 @@ Future<client.Response> handleNewMessage(int fromUserId, Uint8List body) async {
message.kind != MessageKind.storedMediaFile) {
Logger("handleServerMessages")
.shout("Got unknown MessageKind $message");
} else if (message.content != null) {
} else if (message.content != null && message.messageId != null) {
String content = jsonEncode(message.content!.toJson());
bool acknowledgeByUser = false;
@ -241,6 +241,13 @@ Future<client.Response> handleNewMessage(int fromUserId, Uint8List body) async {
responseToMessageId = textContent.responseToMessageId;
}
// when a message is received doubled ignore it...
if ((await twonlyDatabase.messagesDao
.containsOtherMessageId(message.messageId!))) {
var ok = client.Response_Ok()..none = true;
return client.Response()..ok = ok;
}
final update = MessagesCompanion(
contactId: Value(fromUserId),
kind: Value(message.kind),