Merge pull request #582 from RyanRory/message-replication-fix
Further message replication fix
This commit is contained in:
commit
79d148a8d6
|
@ -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)
|
||||
|
|
|
@ -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(())
|
||||
}
|
||||
|
|
|
@ -365,7 +365,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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in New Issue