|
|
|
@ -382,9 +382,6 @@ open class Storage(
|
|
|
|
|
DatabaseComponent.get(context).lokiMessageDatabase().setMessageServerHash(id, message.isMediaMessage(), serverHash)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (expiryMode is ExpiryMode.AfterSend) {
|
|
|
|
|
SSKEnvironment.shared.messageExpirationManager.startAnyExpiration(message.sentTimestamp!!, message.sender!!, expireStartedAt)
|
|
|
|
|
}
|
|
|
|
|
return messageID
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -972,26 +969,24 @@ open class Storage(
|
|
|
|
|
val recipient = Recipient.from(context, fromSerialized(groupID), false)
|
|
|
|
|
val threadId = DatabaseComponent.get(context).threadDatabase().getOrCreateThreadIdFor(recipient)
|
|
|
|
|
val expirationConfig = getExpirationConfiguration(threadId)
|
|
|
|
|
val expiryMode = expirationConfig?.expiryMode
|
|
|
|
|
val expiresInMillis = expiryMode?.expiryMillis ?: 0
|
|
|
|
|
val expiryMode = expirationConfig?.expiryMode ?: ExpiryMode.NONE
|
|
|
|
|
val expiresInMillis = expiryMode.expiryMillis
|
|
|
|
|
val expireStartedAt = if (expiryMode is ExpiryMode.AfterSend) sentTimestamp else 0
|
|
|
|
|
val m = IncomingTextMessage(fromSerialized(senderPublicKey), 1, sentTimestamp, "", Optional.of(group), expiresInMillis, expireStartedAt, true, false)
|
|
|
|
|
val updateData = UpdateMessageData.buildGroupUpdate(type, name, members)?.toJSON()
|
|
|
|
|
val infoMessage = IncomingGroupMessage(m, groupID, updateData, true)
|
|
|
|
|
val smsDB = DatabaseComponent.get(context).smsDatabase()
|
|
|
|
|
smsDB.insertMessageInbox(infoMessage, true)
|
|
|
|
|
if (expiryMode is ExpiryMode.AfterSend) {
|
|
|
|
|
SSKEnvironment.shared.messageExpirationManager.startAnyExpiration(sentTimestamp, senderPublicKey, expireStartedAt)
|
|
|
|
|
}
|
|
|
|
|
SSKEnvironment.shared.messageExpirationManager.maybeStartExpiration(sentTimestamp, senderPublicKey, expiryMode)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun insertOutgoingInfoMessage(context: Context, groupID: String, type: SignalServiceGroup.Type, name: String, members: Collection<String>, admins: Collection<String>, threadID: Long, sentTimestamp: Long) {
|
|
|
|
|
val userPublicKey = getUserPublicKey()
|
|
|
|
|
val userPublicKey = getUserPublicKey()!!
|
|
|
|
|
val recipient = Recipient.from(context, fromSerialized(groupID), false)
|
|
|
|
|
val threadId = DatabaseComponent.get(context).threadDatabase().getOrCreateThreadIdFor(recipient)
|
|
|
|
|
val expirationConfig = getExpirationConfiguration(threadId)
|
|
|
|
|
val expiryMode = expirationConfig?.expiryMode
|
|
|
|
|
val expiresInMillis = expiryMode?.expiryMillis ?: 0
|
|
|
|
|
val expiryMode = expirationConfig?.expiryMode ?: ExpiryMode.NONE
|
|
|
|
|
val expiresInMillis = expiryMode.expiryMillis
|
|
|
|
|
val expireStartedAt = if (expiryMode is ExpiryMode.AfterSend) sentTimestamp else 0
|
|
|
|
|
val updateData = UpdateMessageData.buildGroupUpdate(type, name, members)?.toJSON() ?: ""
|
|
|
|
|
val infoMessage = OutgoingGroupMediaMessage(recipient, updateData, groupID, null, sentTimestamp, expiresInMillis, expireStartedAt, true, null, listOf(), listOf())
|
|
|
|
@ -1000,9 +995,7 @@ open class Storage(
|
|
|
|
|
if (mmsSmsDB.getMessageFor(sentTimestamp, userPublicKey) != null) return
|
|
|
|
|
val infoMessageID = mmsDB.insertMessageOutbox(infoMessage, threadID, false, null, runThreadUpdate = true)
|
|
|
|
|
mmsDB.markAsSent(infoMessageID, true)
|
|
|
|
|
if (expiryMode is ExpiryMode.AfterSend) {
|
|
|
|
|
SSKEnvironment.shared.messageExpirationManager.startAnyExpiration(sentTimestamp, userPublicKey!!, expireStartedAt)
|
|
|
|
|
}
|
|
|
|
|
SSKEnvironment.shared.messageExpirationManager.maybeStartExpiration(sentTimestamp, userPublicKey, expiryMode)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun isClosedGroup(publicKey: String): Boolean {
|
|
|
|
@ -1403,8 +1396,8 @@ open class Storage(
|
|
|
|
|
if (recipient.isBlocked) return
|
|
|
|
|
val threadId = getThreadId(recipient) ?: return
|
|
|
|
|
val expirationConfig = getExpirationConfiguration(threadId)
|
|
|
|
|
val expiryMode = expirationConfig?.expiryMode
|
|
|
|
|
val expiresInMillis = expiryMode?.expiryMillis ?: 0
|
|
|
|
|
val expiryMode = expirationConfig?.expiryMode ?: ExpiryMode.NONE
|
|
|
|
|
val expiresInMillis = expiryMode.expiryMillis
|
|
|
|
|
val expireStartedAt = if (expiryMode is ExpiryMode.AfterSend) sentTimestamp else 0
|
|
|
|
|
val mediaMessage = IncomingMediaMessage(
|
|
|
|
|
address,
|
|
|
|
@ -1426,9 +1419,8 @@ open class Storage(
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
database.insertSecureDecryptedMessageInbox(mediaMessage, threadId, runThreadUpdate = true)
|
|
|
|
|
if (expiryMode is ExpiryMode.AfterSend) {
|
|
|
|
|
SSKEnvironment.shared.messageExpirationManager.startAnyExpiration(sentTimestamp, senderPublicKey, expireStartedAt)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SSKEnvironment.shared.messageExpirationManager.maybeStartExpiration(sentTimestamp, senderPublicKey, expiryMode)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun insertMessageRequestResponse(response: MessageRequestResponse) {
|
|
|
|
@ -1557,14 +1549,12 @@ open class Storage(
|
|
|
|
|
val recipient = Recipient.from(context, address, false)
|
|
|
|
|
val threadId = DatabaseComponent.get(context).threadDatabase().getOrCreateThreadIdFor(recipient)
|
|
|
|
|
val expirationConfig = getExpirationConfiguration(threadId)
|
|
|
|
|
val expiryMode = expirationConfig?.expiryMode
|
|
|
|
|
val expiresInMillis = expiryMode?.expiryMillis ?: 0
|
|
|
|
|
val expiryMode = expirationConfig?.expiryMode?.coerceSendToRead() ?: ExpiryMode.NONE
|
|
|
|
|
val expiresInMillis = expiryMode.expiryMillis
|
|
|
|
|
val expireStartedAt = if (expiryMode is ExpiryMode.AfterSend) sentTimestamp else 0
|
|
|
|
|
val callMessage = IncomingTextMessage.fromCallInfo(callMessageType, address, Optional.absent(), sentTimestamp, expiresInMillis, expireStartedAt)
|
|
|
|
|
database.insertCallMessage(callMessage)
|
|
|
|
|
if (expiryMode is ExpiryMode.AfterSend) {
|
|
|
|
|
SSKEnvironment.shared.messageExpirationManager.startAnyExpiration(sentTimestamp, senderPublicKey, expireStartedAt)
|
|
|
|
|
}
|
|
|
|
|
SSKEnvironment.shared.messageExpirationManager.maybeStartExpiration(sentTimestamp, senderPublicKey, expiryMode)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun conversationHasOutgoing(userPublicKey: String): Boolean {
|
|
|
|
|