diff --git a/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java b/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java index 41fbee2b18..286ceab5bb 100644 --- a/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java +++ b/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java @@ -946,14 +946,14 @@ public class PushDecryptJob extends BaseJob implements InjectableType { } else { notifyTypingStoppedFromIncomingMessage(recipient, content.getSender(), content.getSenderDevice()); - IncomingTextMessage textMessage = new IncomingTextMessage(Address.fromSerialized(content.getSender()), + IncomingTextMessage _textMessage = new IncomingTextMessage(Address.fromSerialized(content.getSender()), content.getSenderDevice(), message.getTimestamp(), body, message.getGroupInfo(), message.getExpiresInSeconds() * 1000L, content.isNeedsReceipt()); - textMessage = new IncomingEncryptedMessage(textMessage, body); + IncomingEncryptedMessage textMessage = new IncomingEncryptedMessage(_textMessage, body); List urls = LinkPreviewUtil.findWhitelistedUrls(body); int urlCount = urls.size(); @@ -992,25 +992,31 @@ public class PushDecryptJob extends BaseJob implements InjectableType { // TODO: Handle } } else { - // TODO: Handle + handleTextMessage(message, textMessage, smsMessageId, messageServerIDOrNull); } })); } else { - Optional insertResult = database.insertMessageInbox(textMessage); + handleTextMessage(message, textMessage, smsMessageId, messageServerIDOrNull); + } + } + } - if (insertResult.isPresent()) threadId = insertResult.get().getThreadId(); - else threadId = null; + private void handleTextMessage(@NonNull SignalServiceDataMessage message, @NonNull IncomingTextMessage textMessage, @NonNull Optional smsMessageId, @NonNull Optional messageServerIDOrNull) { + SmsDatabase database = DatabaseFactory.getSmsDatabase(context); + Optional insertResult = database.insertMessageInbox(textMessage); - if (smsMessageId.isPresent()) database.deleteMessage(smsMessageId.get()); + Long threadId; + if (insertResult.isPresent()) threadId = insertResult.get().getThreadId(); + else threadId = null; - // Loki - Store message server ID - updateGroupChatMessageServerID(messageServerIDOrNull, insertResult); + if (smsMessageId.isPresent()) database.deleteMessage(smsMessageId.get()); - boolean isGroupMessage = message.getGroupInfo().isPresent(); - if (threadId != null && !isGroupMessage) { - MessageNotifier.updateNotification(context, threadId); - } - } + // Loki - Store message server ID + updateGroupChatMessageServerID(messageServerIDOrNull, insertResult); + + boolean isGroupMessage = message.getGroupInfo().isPresent(); + if (threadId != null && !isGroupMessage) { + MessageNotifier.updateNotification(context, threadId); } }