From a15842166c76545b90d2de9535b702633330bc2a Mon Sep 17 00:00:00 2001 From: 0x330a <92654767+0x330a@users.noreply.github.com> Date: Tue, 27 Jun 2023 18:18:16 +1000 Subject: [PATCH] wip: add more logs for initial last Read sync of communities --- .../java/org/thoughtcrime/securesms/database/Storage.kt | 4 ++++ .../libsession/messaging/jobs/BackgroundGroupAddJob.kt | 1 + .../libsession/messaging/jobs/BatchMessageReceiveJob.kt | 9 +++++++++ 3 files changed, 14 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt b/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt index 0242386cc1..69486e5520 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt @@ -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}") } } diff --git a/libsession/src/main/java/org/session/libsession/messaging/jobs/BackgroundGroupAddJob.kt b/libsession/src/main/java/org/session/libsession/messaging/jobs/BackgroundGroupAddJob.kt index e717b0d45d..2dd86bd584 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/jobs/BackgroundGroupAddJob.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/jobs/BackgroundGroupAddJob.kt @@ -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) diff --git a/libsession/src/main/java/org/session/libsession/messaging/jobs/BatchMessageReceiveJob.kt b/libsession/src/main/java/org/session/libsession/messaging/jobs/BatchMessageReceiveJob.kt index 710a49812b..4019f81daa 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/jobs/BatchMessageReceiveJob.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/jobs/BatchMessageReceiveJob.kt @@ -147,6 +147,9 @@ class BatchMessageReceiveJob( val messageIds = linkedMapOf>() 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)