fix profile not loading
This commit is contained in:
-10
@@ -104,18 +104,8 @@ open class RelayConnectionManager(
|
|||||||
* Events will be sent to relays as they become connected.
|
* Events will be sent to relays as they become connected.
|
||||||
*/
|
*/
|
||||||
fun broadcastToAll(event: Event) {
|
fun broadcastToAll(event: Event) {
|
||||||
// Use all configured relays, not just currently connected ones
|
|
||||||
// The NostrClient will queue/send events as relays connect
|
|
||||||
val configuredRelays = relayStatuses.value.keys
|
val configuredRelays = relayStatuses.value.keys
|
||||||
val connectedCount = connectedRelays.value.size
|
|
||||||
println("[RelayManager] broadcastToAll: event kind=${event.kind}, ID=${event.id.take(8)}...")
|
|
||||||
println("[RelayManager] Configured relays: ${configuredRelays.size}, Connected: $connectedCount")
|
|
||||||
configuredRelays.forEach { relay ->
|
|
||||||
val isConnected = connectedRelays.value.contains(relay)
|
|
||||||
println("[RelayManager] - $relay: ${if (isConnected) "CONNECTED" else "pending"}")
|
|
||||||
}
|
|
||||||
send(event, configuredRelays)
|
send(event, configuredRelays)
|
||||||
println("[RelayManager] broadcastToAll complete")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateRelayStatus(
|
private fun updateRelayStatus(
|
||||||
|
|||||||
+1
-1
@@ -81,7 +81,7 @@ fun createContactListSubscription(
|
|||||||
onEose: (NormalizedRelayUrl, List<Filter>?) -> Unit = { _, _ -> },
|
onEose: (NormalizedRelayUrl, List<Filter>?) -> Unit = { _, _ -> },
|
||||||
): SubscriptionConfig =
|
): SubscriptionConfig =
|
||||||
SubscriptionConfig(
|
SubscriptionConfig(
|
||||||
subId = generateSubId("contact-list-$pubKeyHex"),
|
subId = generateSubId("contacts-${pubKeyHex.take(8)}"),
|
||||||
filters = listOf(FilterBuilders.contactList(pubKeyHex)),
|
filters = listOf(FilterBuilders.contactList(pubKeyHex)),
|
||||||
relays = relays,
|
relays = relays,
|
||||||
onEvent = onEvent,
|
onEvent = onEvent,
|
||||||
|
|||||||
+3
-3
@@ -35,7 +35,7 @@ fun createMetadataSubscription(
|
|||||||
onEose: (NormalizedRelayUrl, List<Filter>?) -> Unit = { _, _ -> },
|
onEose: (NormalizedRelayUrl, List<Filter>?) -> Unit = { _, _ -> },
|
||||||
): SubscriptionConfig =
|
): SubscriptionConfig =
|
||||||
SubscriptionConfig(
|
SubscriptionConfig(
|
||||||
subId = generateSubId("profile-metadata-$pubKeyHex"),
|
subId = generateSubId("meta-${pubKeyHex.take(8)}"),
|
||||||
filters = listOf(FilterBuilders.userMetadata(pubKeyHex)),
|
filters = listOf(FilterBuilders.userMetadata(pubKeyHex)),
|
||||||
relays = relays,
|
relays = relays,
|
||||||
onEvent = onEvent,
|
onEvent = onEvent,
|
||||||
@@ -53,7 +53,7 @@ fun createUserPostsSubscription(
|
|||||||
onEose: (NormalizedRelayUrl, List<Filter>?) -> Unit = { _, _ -> },
|
onEose: (NormalizedRelayUrl, List<Filter>?) -> Unit = { _, _ -> },
|
||||||
): SubscriptionConfig =
|
): SubscriptionConfig =
|
||||||
SubscriptionConfig(
|
SubscriptionConfig(
|
||||||
subId = generateSubId("profile-posts-$pubKeyHex"),
|
subId = generateSubId("posts-${pubKeyHex.take(8)}"),
|
||||||
filters = listOf(FilterBuilders.textNotesFromAuthors(listOf(pubKeyHex), limit = limit)),
|
filters = listOf(FilterBuilders.textNotesFromAuthors(listOf(pubKeyHex), limit = limit)),
|
||||||
relays = relays,
|
relays = relays,
|
||||||
onEvent = onEvent,
|
onEvent = onEvent,
|
||||||
@@ -71,7 +71,7 @@ fun createNotificationsSubscription(
|
|||||||
onEose: (NormalizedRelayUrl, List<Filter>?) -> Unit = { _, _ -> },
|
onEose: (NormalizedRelayUrl, List<Filter>?) -> Unit = { _, _ -> },
|
||||||
): SubscriptionConfig =
|
): SubscriptionConfig =
|
||||||
SubscriptionConfig(
|
SubscriptionConfig(
|
||||||
subId = generateSubId("notifications-$pubKeyHex"),
|
subId = generateSubId("notif-${pubKeyHex.take(8)}"),
|
||||||
filters = listOf(FilterBuilders.notificationsForUser(pubKeyHex, limit = limit)),
|
filters = listOf(FilterBuilders.notificationsForUser(pubKeyHex, limit = limit)),
|
||||||
relays = relays,
|
relays = relays,
|
||||||
onEvent = onEvent,
|
onEvent = onEvent,
|
||||||
|
|||||||
@@ -138,29 +138,39 @@ fun FeedScreen(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Clear events when feed mode changes
|
// Clear events when feed mode changes
|
||||||
remember(feedMode) { eventState.clear() }
|
remember(feedMode) {
|
||||||
|
eventState.clear()
|
||||||
|
}
|
||||||
|
|
||||||
// Subscribe to feed based on mode
|
// Subscribe to feed based on mode
|
||||||
rememberSubscription(relayStatuses, feedMode, followedUsers, relayManager = relayManager) {
|
rememberSubscription(relayStatuses, feedMode, followedUsers, relayManager = relayManager) {
|
||||||
val configuredRelays = relayStatuses.keys
|
val configuredRelays = relayStatuses.keys
|
||||||
if (configuredRelays.isEmpty()) return@rememberSubscription null
|
if (configuredRelays.isEmpty()) {
|
||||||
|
return@rememberSubscription null
|
||||||
|
}
|
||||||
|
|
||||||
when (feedMode) {
|
when (feedMode) {
|
||||||
FeedMode.GLOBAL ->
|
FeedMode.GLOBAL -> {
|
||||||
createGlobalFeedSubscription(
|
createGlobalFeedSubscription(
|
||||||
relays = configuredRelays,
|
relays = configuredRelays,
|
||||||
onEvent = { event, _, _, _ -> eventState.addItem(event) },
|
onEvent = { event, _, _, _ ->
|
||||||
|
eventState.addItem(event)
|
||||||
|
},
|
||||||
)
|
)
|
||||||
FeedMode.FOLLOWING ->
|
}
|
||||||
|
FeedMode.FOLLOWING -> {
|
||||||
if (followedUsers.isNotEmpty()) {
|
if (followedUsers.isNotEmpty()) {
|
||||||
createFollowingFeedSubscription(
|
createFollowingFeedSubscription(
|
||||||
relays = configuredRelays,
|
relays = configuredRelays,
|
||||||
followedUsers = followedUsers.toList(),
|
followedUsers = followedUsers.toList(),
|
||||||
onEvent = { event, _, _, _ -> eventState.addItem(event) },
|
onEvent = { event, _, _, _ ->
|
||||||
|
eventState.addItem(event)
|
||||||
|
},
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
@@ -174,6 +174,8 @@ fun UserProfileScreen(
|
|||||||
rememberSubscription(relayStatuses, pubKeyHex, retryTrigger, relayManager = relayManager) {
|
rememberSubscription(relayStatuses, pubKeyHex, retryTrigger, relayManager = relayManager) {
|
||||||
val configuredRelays = relayStatuses.keys
|
val configuredRelays = relayStatuses.keys
|
||||||
if (configuredRelays.isNotEmpty()) {
|
if (configuredRelays.isNotEmpty()) {
|
||||||
|
postsLoading = true
|
||||||
|
postsError = null
|
||||||
createUserPostsSubscription(
|
createUserPostsSubscription(
|
||||||
relays = configuredRelays,
|
relays = configuredRelays,
|
||||||
pubKeyHex = pubKeyHex,
|
pubKeyHex = pubKeyHex,
|
||||||
@@ -225,6 +227,7 @@ fun UserProfileScreen(
|
|||||||
}
|
}
|
||||||
followState.setFollowSuccess(updatedEvent, pubKeyHex)
|
followState.setFollowSuccess(updatedEvent, pubKeyHex)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
e.printStackTrace()
|
||||||
followState.setFollowError(e.message ?: "Failed to update follow status", e)
|
followState.setFollowError(e.message ?: "Failed to update follow status", e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user