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);
}
}