Fix crash replying on push notification (#1048)

pull/1713/head
SessionHero01 2 months ago committed by GitHub
parent 6142708551
commit 3448fcde7f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -109,7 +109,7 @@ public class RemoteReplyReceiver extends BroadcastReceiver {
case GroupMessage: { case GroupMessage: {
OutgoingMediaMessage reply = OutgoingMediaMessage.from(message, recipient, Collections.emptyList(), null, null, expiresInMillis, 0); OutgoingMediaMessage reply = OutgoingMediaMessage.from(message, recipient, Collections.emptyList(), null, null, expiresInMillis, 0);
try { try {
mmsDatabase.insertMessageOutbox(reply, threadId, false, null, true); message.setId(mmsDatabase.insertMessageOutbox(reply, threadId, false, null, true));
MessageSender.send(message, address); MessageSender.send(message, address);
} catch (MmsException e) { } catch (MmsException e) {
Log.w(TAG, e); Log.w(TAG, e);
@ -118,7 +118,7 @@ public class RemoteReplyReceiver extends BroadcastReceiver {
} }
case SecureMessage: { case SecureMessage: {
OutgoingTextMessage reply = OutgoingTextMessage.from(message, recipient, expiresInMillis, expireStartedAt); OutgoingTextMessage reply = OutgoingTextMessage.from(message, recipient, expiresInMillis, expireStartedAt);
smsDatabase.insertMessageOutbox(threadId, reply, false, System.currentTimeMillis(), null, true); message.setId(smsDatabase.insertMessageOutbox(threadId, reply, false, System.currentTimeMillis(), null, true));
MessageSender.send(message, address); MessageSender.send(message, address);
break; break;
} }

@ -430,7 +430,8 @@ object MessageSender {
// Result Handling // Result Handling
fun handleSuccessfulMessageSend(message: Message, destination: Destination, isSyncMessage: Boolean = false, openGroupSentTimestamp: Long = -1) { fun handleSuccessfulMessageSend(message: Message, destination: Destination, isSyncMessage: Boolean = false, openGroupSentTimestamp: Long = -1) {
if (message is VisibleMessage) MessagingModuleConfiguration.shared.lastSentTimestampCache.submitTimestamp(message.threadID!!, openGroupSentTimestamp) val threadId = message.threadID!!
if (message is VisibleMessage) MessagingModuleConfiguration.shared.lastSentTimestampCache.submitTimestamp(threadId, openGroupSentTimestamp)
val storage = MessagingModuleConfiguration.shared.storage val storage = MessagingModuleConfiguration.shared.storage
val userPublicKey = storage.getUserPublicKey()!! val userPublicKey = storage.getUserPublicKey()!!
val timestamp = message.sentTimestamp!! val timestamp = message.sentTimestamp!!
@ -439,7 +440,7 @@ object MessageSender {
storage.getMessageIdInDatabase(timestamp, userPublicKey)?.let { (messageID, mms) -> storage.getMessageIdInDatabase(timestamp, userPublicKey)?.let { (messageID, mms) ->
if (openGroupSentTimestamp != -1L && message is VisibleMessage) { if (openGroupSentTimestamp != -1L && message is VisibleMessage) {
storage.addReceivedMessageTimestamp(openGroupSentTimestamp) storage.addReceivedMessageTimestamp(openGroupSentTimestamp)
storage.updateSentTimestamp(messageID, message.isMediaMessage(), openGroupSentTimestamp, message.threadID!!) storage.updateSentTimestamp(messageID, message.isMediaMessage(), openGroupSentTimestamp, threadId)
message.sentTimestamp = openGroupSentTimestamp message.sentTimestamp = openGroupSentTimestamp
} }
@ -488,8 +489,11 @@ object MessageSender {
// Fixed in: https://optf.atlassian.net/browse/SES-1567 // Fixed in: https://optf.atlassian.net/browse/SES-1567
if (messageIsAddressedToCommunity) if (messageIsAddressedToCommunity)
{ {
storage.markAsSentToCommunity(message.threadID!!, message.id!!) val messageId = message.id
storage.markUnidentifiedInCommunity(message.threadID!!, message.id!!) if (messageId != null) {
storage.markAsSentToCommunity(threadId, messageId)
storage.markUnidentifiedInCommunity(threadId, messageId)
}
} }
else else
{ {

Loading…
Cancel
Save