wip: add more logs for initial last Read sync of communities

This commit is contained in:
0x330a 2023-06-27 18:18:16 +10:00
parent dd001640a4
commit a15842166c
3 changed files with 14 additions and 0 deletions

View File

@ -549,6 +549,7 @@ open class Storage(context: Context, helper: SQLCipherOpenHelper, private val co
toAddCommunities.forEach { toAddCommunity ->
val joinUrl = toAddCommunity.community.fullUrl()
if (!hasBackgroundGroupAddJob(joinUrl)) {
Log.d("Loki-DBG", "Adding background $joinUrl")
JobQueue.shared.add(BackgroundGroupAddJob(joinUrl))
}
}
@ -1030,6 +1031,7 @@ open class Storage(context: Context, helper: SQLCipherOpenHelper, private val co
override fun onOpenGroupAdded(server: String, room: String) {
OpenGroupManager.restartPollerForServer(server.removeSuffix("/"))
Log.d("Loki-DBG", "Checking onOpenGroupAdded: $server $room")
val groups = configFactory.userGroups ?: return
val volatileConfig = configFactory.convoVolatile ?: return
val openGroup = getOpenGroup(room, server) ?: return
@ -1038,9 +1040,11 @@ open class Storage(context: Context, helper: SQLCipherOpenHelper, private val co
val communityInfo = groups.getOrConstructCommunityInfo(infoServer, infoRoom, pubKeyHex)
groups.set(communityInfo)
val volatile = volatileConfig.getOrConstructCommunity(infoServer, infoRoom, pubKey)
Log.d("Loki-DBG", "latest volatile read for $room is ${volatile.lastRead}")
if (volatile.lastRead != 0L) {
val threadId = getThreadId(openGroup) ?: return
markConversationAsRead(threadId, volatile.lastRead, force = true)
Log.d("Loki-DBG", "set latest volatile read for $room to ${volatile.lastRead}")
}
}

View File

@ -40,6 +40,7 @@ class BackgroundGroupAddJob(val joinUrl: String): Job {
}
storage.addOpenGroup(openGroup.joinUrl())
Log.d(KEY, "onOpenGroupAdded(${openGroup.server})")
Log.d("Loki-DBG", "added group $joinUrl")
storage.onOpenGroupAdded(openGroup.server, openGroup.room)
} catch (e: Exception) {
Log.e("OpenGroupDispatcher", "Failed to add group because",e)

View File

@ -147,6 +147,9 @@ class BatchMessageReceiveJob(
val messageIds = linkedMapOf<Long, Pair<Boolean, Boolean>>()
val myLastSeen = storage.getLastSeen(threadId)
var newLastSeen = if (myLastSeen == -1L) 0 else myLastSeen
if (!openGroupID.isNullOrEmpty()) {
Log.d("Loki-DBG", "pre-lastSeen for: $openGroupID is $newLastSeen")
}
messages.forEach { (parameters, message, proto) ->
try {
when (message) {
@ -217,9 +220,15 @@ class BatchMessageReceiveJob(
// last seen will be the current last seen if not changed (re-computes the read counts for thread record)
// might have been updated from a different thread at this point
val currentLastSeen = storage.getLastSeen(threadId).let { if (it == -1L) 0 else it }
if (!openGroupID.isNullOrEmpty()) {
Log.d("Loki-DBG", "current-lastSeen (w/ my message read) for: $openGroupID is $currentLastSeen")
}
if (currentLastSeen > newLastSeen) {
newLastSeen = currentLastSeen
}
if (!openGroupID.isNullOrEmpty()) {
Log.d("Loki-DBG", "new-lastSeen for: $openGroupID is $currentLastSeen")
}
storage.markConversationAsRead(threadId, newLastSeen)
storage.updateThread(threadId, true)
SSKEnvironment.shared.notificationManager.updateNotification(context, threadId)