mirror of
https://github.com/oxen-io/session-android.git
synced 2025-10-27 14:20:41 +00:00
refactor: used shared number for BatchMessageReceiveJob.kt parameter across pollers
This commit is contained in:
@@ -31,6 +31,8 @@ class BatchMessageReceiveJob(
|
|||||||
const val TAG = "BatchMessageReceiveJob"
|
const val TAG = "BatchMessageReceiveJob"
|
||||||
const val KEY = "BatchMessageReceiveJob"
|
const val KEY = "BatchMessageReceiveJob"
|
||||||
|
|
||||||
|
const val BATCH_DEFAULT_NUMBER = 50
|
||||||
|
|
||||||
// Keys used for database storage
|
// Keys used for database storage
|
||||||
private val NUM_MESSAGES_KEY = "numMessages"
|
private val NUM_MESSAGES_KEY = "numMessages"
|
||||||
private val DATA_KEY = "data"
|
private val DATA_KEY = "data"
|
||||||
|
|||||||
@@ -4,8 +4,10 @@ import nl.komponents.kovenant.Promise
|
|||||||
import nl.komponents.kovenant.functional.bind
|
import nl.komponents.kovenant.functional.bind
|
||||||
import nl.komponents.kovenant.functional.map
|
import nl.komponents.kovenant.functional.map
|
||||||
import org.session.libsession.messaging.MessagingModuleConfiguration
|
import org.session.libsession.messaging.MessagingModuleConfiguration
|
||||||
|
import org.session.libsession.messaging.jobs.BatchMessageReceiveJob
|
||||||
import org.session.libsession.messaging.jobs.JobQueue
|
import org.session.libsession.messaging.jobs.JobQueue
|
||||||
import org.session.libsession.messaging.jobs.MessageReceiveJob
|
import org.session.libsession.messaging.jobs.MessageReceiveJob
|
||||||
|
import org.session.libsession.messaging.jobs.MessageReceiveParameters
|
||||||
import org.session.libsession.snode.SnodeAPI
|
import org.session.libsession.snode.SnodeAPI
|
||||||
import org.session.libsession.utilities.GroupUtil
|
import org.session.libsession.utilities.GroupUtil
|
||||||
import org.session.libsignal.crypto.getRandomElementOrNull
|
import org.session.libsignal.crypto.getRandomElementOrNull
|
||||||
@@ -100,8 +102,12 @@ class ClosedGroupPollerV2 {
|
|||||||
}
|
}
|
||||||
promise.success { envelopes ->
|
promise.success { envelopes ->
|
||||||
if (!isPolling(groupPublicKey)) { return@success }
|
if (!isPolling(groupPublicKey)) { return@success }
|
||||||
envelopes.forEach { (envelope, serverHash) ->
|
|
||||||
val job = MessageReceiveJob(envelope.toByteArray(), serverHash)
|
val parameters = envelopes.map { (envelope, serverHash) ->
|
||||||
|
MessageReceiveParameters(envelope.toByteArray(), serverHash = serverHash)
|
||||||
|
}
|
||||||
|
parameters.chunked(BatchMessageReceiveJob.BATCH_DEFAULT_NUMBER).forEach { chunk ->
|
||||||
|
val job = BatchMessageReceiveJob(chunk)
|
||||||
JobQueue.shared.add(job)
|
JobQueue.shared.add(job)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ class OpenGroupPollerV2(private val server: String, private val executorService:
|
|||||||
builder.build() to message.serverID
|
builder.build() to message.serverID
|
||||||
}
|
}
|
||||||
|
|
||||||
envelopes.chunked(20).forEach { list ->
|
envelopes.chunked(BatchMessageReceiveJob.BATCH_DEFAULT_NUMBER).forEach { list ->
|
||||||
val parameters = list.map { (message, serverId) ->
|
val parameters = list.map { (message, serverId) ->
|
||||||
MessageReceiveParameters(message.toByteArray(), openGroupMessageServerID = serverId)
|
MessageReceiveParameters(message.toByteArray(), openGroupMessageServerID = serverId)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ class Poller {
|
|||||||
val parameters = messages.map { (envelope, serverHash) ->
|
val parameters = messages.map { (envelope, serverHash) ->
|
||||||
MessageReceiveParameters(envelope.toByteArray(), serverHash = serverHash)
|
MessageReceiveParameters(envelope.toByteArray(), serverHash = serverHash)
|
||||||
}
|
}
|
||||||
parameters.chunked(20).forEach { chunk ->
|
parameters.chunked(BatchMessageReceiveJob.BATCH_DEFAULT_NUMBER).forEach { chunk ->
|
||||||
val job = BatchMessageReceiveJob(chunk)
|
val job = BatchMessageReceiveJob(chunk)
|
||||||
JobQueue.shared.add(job)
|
JobQueue.shared.add(job)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user