Overwrite otherHandle in a few other places

This commit is contained in:
Tanay Neotia
2022-12-24 17:23:10 -05:00
parent 8451722d03
commit 07f89af4ad
3 changed files with 10 additions and 0 deletions

View File

@ -543,6 +543,9 @@ class Message {
if (existingHandle != null) {
m.handleId = existingHandle.id;
}
if (existingMessages.firstWhereOrNull((e) => e.guid == m.guid) == null && m.otherHandle != null) {
m.otherHandle = Handle.findOne(originalROWID: m.otherHandle)?.id;
}
}
associatedMessages.removeWhere((message) {
Message? _message = messages.firstWhereOrNull((e) => e.guid == message.guid);

View File

@ -238,6 +238,9 @@ class ActionHandler extends GetxService {
m.handleId = handle.id;
m.handle = handle;
}
if (m.otherHandle != null) {
m.otherHandle = Handle.findOne(originalROWID: m.otherHandle)?.id;
}
// Display notification if needed and save everything to DB
Logger.info("Alive: ${ls.isAlive}");
if (!ls.isAlive) {

View File

@ -162,12 +162,16 @@ class BulkSyncMessages extends AsyncTask<List<dynamic>, List<Message>> {
if (message.handle == null && message.handleId == 0) continue;
// If the handle is null, find the handle data by the original handle ID.
bool hadNullHandle = message.handle == null;
message.handle ??= handlesCache.values.firstWhereOrNull(
(element) => element.originalROWID == message.handleId);
if (!handlesCache.containsKey(message.handle?.address)) continue;
message.handleId = handlesCache[message.handle!.address]?.id ?? 0;
message.handle = handlesCache[message.handle!.address];
if (hadNullHandle && message.otherHandle != null) {
message.otherHandle = Handle.findOne(originalROWID: message.otherHandle)?.id;
}
}
// 2. Extract & cache the attachments