Revision db87105c
ChatSecure/Classes/Controllers/XMPP/Storage/MessageStorage.swift | ||
---|---|---|
132 | 132 |
delayed: Date?, |
133 | 133 |
isIncoming: Bool, |
134 | 134 |
preSave: PreSave? = nil ) { |
135 |
guard !xmppMessage.isErrorMessage else { |
|
135 |
guard !xmppMessage.isErrorMessage, |
|
136 |
!xmppMessage.containsGroupChatElements else { |
|
136 | 137 |
DDLogWarn("Discarding forwarded message: \(xmppMessage)") |
137 | 138 |
return |
138 | 139 |
} |
... | ... | |
297 | 298 |
public func xmppStream(_ sender: XMPPStream, didReceive message: XMPPMessage) { |
298 | 299 |
// We don't handle incoming group chat messages here |
299 | 300 |
// Check out OTRXMPPRoomYapStorage instead |
300 |
guard message.messageType != .groupchat, |
|
301 |
message.element(forName: "x", xmlns: XMPPMUCUserNamespace) == nil, |
|
302 |
message.element(forName: "x", xmlns: XMPPConferenceXmlns) == nil, |
|
301 |
guard !message.containsGroupChatElements, |
|
303 | 302 |
// We handle carbons elsewhere via XMPPMessageCarbonsDelegate |
304 | 303 |
!message.isMessageCarbon, |
305 | 304 |
// We handle MAM elsewhere as well |
... | ... | |
373 | 372 |
|
374 | 373 |
// MARK: - Private Extensions |
375 | 374 |
|
375 |
extension XMPPMessage { |
|
376 |
/// We don't want any group chat stuff ending up in here, including invites |
|
377 |
var containsGroupChatElements: Bool { |
|
378 |
let message = self |
|
379 |
guard message.messageType != .groupchat, |
|
380 |
message.element(forName: "x", xmlns: XMPPMUCUserNamespace) == nil, |
|
381 |
message.element(forName: "x", xmlns: XMPPConferenceXmlns) == nil else { |
|
382 |
return true |
|
383 |
} |
|
384 |
return false |
|
385 |
} |
|
386 |
} |
|
376 | 387 |
|
377 | 388 |
extension OTRChatState { |
378 | 389 |
static func chatState(from fromState: XMPPMessage.ChatState?) -> OTRChatState { |
Also available in: Unified diff