diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/nip59GiftWraps/AccountGiftWrapsHistoryEoseManager.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/nip59GiftWraps/AccountGiftWrapsHistoryEoseManager.kt index 8630cd87fa..179cad473f 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/nip59GiftWraps/AccountGiftWrapsHistoryEoseManager.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/account/nip59GiftWraps/AccountGiftWrapsHistoryEoseManager.kt @@ -217,7 +217,13 @@ class AccountGiftWrapsHistoryEoseManager( val stalled = stalledRelays[user.pubkeyHex] ?: emptySet() val pending = relays.any { !pager.isDone(user.pubkeyHex, it) && it !in stalled } val ex = !pending + val was = exhaustedByUser[user.pubkeyHex] ?: false exhaustedByUser[user.pubkeyHex] = ex + if (ex && !was) { + val done = relays.filter { pager.isDone(user.pubkeyHex, it) }.map { it.url } + val stuck = relays.filter { it in stalled && !pager.isDone(user.pubkeyHex, it) }.map { it.url } + Log.d(TAG) { "[giftwrap.history] window settled (nothing more reachable) — done=$done stalled=$stuck" } + } if (activeUser == user.pubkeyHex) _exhausted.value = ex } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/datasource/ChatroomNip04HistorySubAssembler.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/datasource/ChatroomNip04HistorySubAssembler.kt index b358bf348b..d1d433a37b 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/datasource/ChatroomNip04HistorySubAssembler.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/privateDM/datasource/ChatroomNip04HistorySubAssembler.kt @@ -207,7 +207,13 @@ class ChatroomNip04HistorySubAssembler( val stalled = stalledRelays[pk] ?: emptySet() val pending = relays.all.any { !pager.isDone(pk, it) && it !in stalled } val ex = !pending + val was = exhaustedByConvo[pk] ?: false exhaustedByConvo[pk] = ex + if (ex && !was) { + val done = relays.all.filter { pager.isDone(pk, it) }.map { it.url } + val stuck = relays.all.filter { it in stalled && !pager.isDone(pk, it) }.map { it.url } + Log.d("DMPagination") { "[convo.nip04.history] window settled (nothing more reachable) — done=$done stalled=$stuck" } + } if (activeConvo == pk) _exhausted.value = ex } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/datasource/ChatroomListNip04HistorySubAssembler.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/datasource/ChatroomListNip04HistorySubAssembler.kt index 2ea913b2a8..721ca082d4 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/datasource/ChatroomListNip04HistorySubAssembler.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/rooms/datasource/ChatroomListNip04HistorySubAssembler.kt @@ -193,7 +193,13 @@ class ChatroomListNip04HistorySubAssembler( val stalled = stalledRelays[user.pubkeyHex] ?: emptySet() val pending = relays.any { !pager.isDone(user.pubkeyHex, it) && it !in stalled } val ex = !pending + val was = exhaustedByUser[user.pubkeyHex] ?: false exhaustedByUser[user.pubkeyHex] = ex + if (ex && !was) { + val done = relays.filter { pager.isDone(user.pubkeyHex, it) }.map { it.url } + val stuck = relays.filter { it in stalled && !pager.isDone(user.pubkeyHex, it) }.map { it.url } + Log.d("DMPagination") { "[rooms.nip04.history] window settled (nothing more reachable) — done=$done stalled=$stuck" } + } if (activeUser == user.pubkeyHex) _exhausted.value = ex }