Merge branch 'message-replication-fix' into voice-calls-2

This commit is contained in:
Ryan Zhao 2022-03-15 14:35:08 +11:00
commit 343a3afc0a
4 changed files with 6 additions and 4 deletions

View File

@ -28,7 +28,7 @@ extension Storage {
let thread = TSThread.fetch(uniqueId: threadID, transaction: transaction) else { return nil }
let tsMessage: TSMessage
if message.sender == getUserPublicKey() {
if let _ = TSOutgoingMessage.find(withTimestamp: message.sentTimestamp!) { return nil }
if TSOutgoingMessage.find(withTimestamp: message.sentTimestamp!) != nil { return nil }
let tsOutgoingMessage = TSOutgoingMessage.from(message, associatedWith: thread, using: transaction)
var recipients: [String] = []
if let syncTarget = message.syncTarget {
@ -42,6 +42,7 @@ extension Storage {
}
tsMessage = tsOutgoingMessage
} else {
if TSIncomingMessage.find(withAuthorId: message.sender!, timestamp: message.sentTimestamp!, transaction: transaction) != nil { return nil }
tsMessage = TSIncomingMessage.from(message, quotedMessage: quotedMessage, linkPreview: linkPreview, associatedWith: thread)
}
tsMessage.save(with: transaction)

View File

@ -34,7 +34,7 @@ public final class OpenGroupManagerV2 : NSObject {
let transaction = transaction as! YapDatabaseReadWriteTransaction
let groupId: Data = LKGroupUtilities.getEncodedOpenGroupIDAsData("\(server).\(room)")
if OpenGroupManagerV2.shared.pollers[server] != nil && TSGroupThread.fetch(uniqueId: TSGroupThread.threadId(fromGroupId: groupId), transaction: transaction) != nil {
if OpenGroupManagerV2.shared.pollers[server] != nil && TSGroupThread.fetch(groupId: groupId, transaction: transaction) != nil {
SNLog("Ignoring join open group attempt (already joined)")
return Promise.value(())
}

View File

@ -407,7 +407,7 @@ extension MessageReceiver {
}
// Persist the message
guard let tsMessageID = storage.persist(message, quotedMessage: tsQuotedMessage, linkPreview: owsLinkPreview,
groupPublicKey: message.groupPublicKey, openGroupID: openGroupID, using: transaction) else { throw Error.noThread }
groupPublicKey: message.groupPublicKey, openGroupID: openGroupID, using: transaction) else { throw Error.duplicateMessage }
message.threadID = threadID
// Start attachment downloads if needed
let isContactTrusted = Storage.shared.getContact(with: message.sender!)?.isTrusted ?? false

View File

@ -30,7 +30,8 @@ extern NSString *const TSGroupThread_NotificationKey_UniqueId;
groupType:(GroupType) groupType
transaction:(YapDatabaseReadWriteTransaction *)transaction;
+ (nullable instancetype)threadWithGroupId:(NSData *)groupId transaction:(YapDatabaseReadTransaction *)transaction;
+ (nullable instancetype)threadWithGroupId:(NSData *)groupId transaction:(YapDatabaseReadTransaction *)transaction
NS_SWIFT_NAME(fetch(groupId:transaction:));
+ (NSString *)threadIdFromGroupId:(NSData *)groupId;