Fixed a bug where open group messages sent on another device weren't correctly getting marked as sent

pull/612/head
Morgan Pretty 3 years ago
parent f9f0662558
commit fe2e2510bb

@ -276,24 +276,34 @@ extension MessageReceiver {
) throws {
guard variant == .standardOutgoing else { return }
if let syncTarget: String = syncTarget {
try RecipientState(
interactionId: interactionId,
recipientId: syncTarget,
state: .sent
).save(db)
}
else if thread.variant == .closedGroup {
try GroupMember
.filter(GroupMember.Columns.groupId == thread.id)
.fetchAll(db)
.forEach { member in
switch thread.variant {
case .contact:
if let syncTarget: String = syncTarget {
try RecipientState(
interactionId: interactionId,
recipientId: member.profileId,
recipientId: syncTarget,
state: .sent
).save(db)
}
case .closedGroup:
try GroupMember
.filter(GroupMember.Columns.groupId == thread.id)
.fetchAll(db)
.forEach { member in
try RecipientState(
interactionId: interactionId,
recipientId: member.profileId,
state: .sent
).save(db)
}
case .openGroup:
try RecipientState(
interactionId: interactionId,
recipientId: thread.id, // For open groups this will always be the thread id
state: .sent
).save(db)
}
// For outgoing messages mark all older interactions as read (the user should have seen

Loading…
Cancel
Save