store server hash value for incoming messages

This commit is contained in:
ryanzhao
2021-08-17 14:34:49 +10:00
parent c4a3463416
commit ecc881bc7c
7 changed files with 21 additions and 12 deletions

View File

@@ -1138,7 +1138,7 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe
private fun deleteLocally(message: MessageRecord) {
buildUsendRequest(message)?.let { unsendRequest ->
TextSecurePreferences.getLocalNumber(this)?.let {
TextSecurePreferences.getLocalNumber(this@ConversationActivityV2)?.let {
MessageSender.send(unsendRequest, Address.fromSerialized(it))
}
}

View File

@@ -148,6 +148,11 @@ class Storage(context: Context, helper: SQLCipherOpenHelper) : Database(context,
if (openGroupID.isNullOrEmpty() && threadID != null && threadID >= 0) {
JobQueue.shared.add(TrimThreadJob(threadID))
}
message.serverHash?.let { serverHash ->
messageID?.let { id ->
DatabaseFactory.getLokiMessageDatabase(context).setMessageServerHash(id, serverHash)
}
}
return messageID
}

View File

@@ -49,9 +49,9 @@ class BackgroundPollWorker(val context: Context, params: WorkerParameters) : Wor
// DMs
val userPublicKey = TextSecurePreferences.getLocalNumber(context)!!
val dmsPromise = SnodeAPI.getMessages(userPublicKey).map { envelopes ->
envelopes.map { envelope ->
envelopes.map { (envelope, serverHash) ->
// FIXME: Using a job here seems like a bad idea...
MessageReceiveJob(envelope.toByteArray()).executeAsync()
MessageReceiveJob(envelope.toByteArray(), serverHash).executeAsync()
}
}
promises.addAll(dmsPromise.get())