fix: Resolve API mismatches after merge with upstream
- Fix import paths to use desktop.subscriptions instead of commons.subscriptions - Update DesktopLocalCache to match ICacheProvider interface changes - Use correct commons.relayClient paths for ComposeSubscriptionManager - Add missing justConsumeMyOwnEvent and getOrCreateAddressableNote methods Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -20,7 +20,7 @@
|
||||
*/
|
||||
package com.vitorpamplona.amethyst.desktop
|
||||
|
||||
import com.vitorpamplona.amethyst.commons.subscriptions.FeedMode
|
||||
import com.vitorpamplona.amethyst.desktop.subscriptions.FeedMode
|
||||
import java.util.prefs.Preferences
|
||||
|
||||
/**
|
||||
|
||||
Vendored
+23
-6
@@ -20,12 +20,15 @@
|
||||
*/
|
||||
package com.vitorpamplona.amethyst.desktop.cache
|
||||
|
||||
import com.vitorpamplona.amethyst.commons.model.AddressableNote
|
||||
import com.vitorpamplona.amethyst.commons.model.Channel
|
||||
import com.vitorpamplona.amethyst.commons.model.Note
|
||||
import com.vitorpamplona.amethyst.commons.model.User
|
||||
import com.vitorpamplona.amethyst.commons.model.cache.ICacheEventStream
|
||||
import com.vitorpamplona.amethyst.commons.model.cache.ICacheProvider
|
||||
import com.vitorpamplona.amethyst.commons.model.cache.IChannel
|
||||
import com.vitorpamplona.amethyst.commons.services.nwc.NwcPaymentTracker
|
||||
import com.vitorpamplona.quartz.nip01Core.core.Address
|
||||
import com.vitorpamplona.quartz.nip01Core.core.Event
|
||||
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
||||
import com.vitorpamplona.quartz.nip01Core.metadata.MetadataEvent
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
|
||||
@@ -48,6 +51,7 @@ import java.util.concurrent.ConcurrentHashMap
|
||||
class DesktopLocalCache : ICacheProvider {
|
||||
private val users = ConcurrentHashMap<HexKey, User>()
|
||||
private val notes = ConcurrentHashMap<HexKey, Note>()
|
||||
private val addressableNotes = ConcurrentHashMap<String, AddressableNote>()
|
||||
private val deletedEvents = ConcurrentHashMap.newKeySet<HexKey>()
|
||||
|
||||
private val eventStream = DesktopCacheEventStream()
|
||||
@@ -63,10 +67,10 @@ class DesktopLocalCache : ICacheProvider {
|
||||
// Create placeholder notes for relay lists
|
||||
val nip65Note = getOrCreateNote("nip65:$pubkey")
|
||||
val dmNote = getOrCreateNote("dm:$pubkey")
|
||||
User(pubkey, nip65Note, dmNote, this)
|
||||
User(pubkey, nip65Note, dmNote)
|
||||
}
|
||||
|
||||
override fun countUsers(predicate: (String, Any) -> Boolean): Int = users.count { (key, user) -> predicate(key, user) }
|
||||
override fun countUsers(predicate: (String, User) -> Boolean): Int = users.count { (key, user) -> predicate(key, user) }
|
||||
|
||||
override fun findUsersStartingWith(
|
||||
prefix: String,
|
||||
@@ -188,12 +192,17 @@ class DesktopLocalCache : ICacheProvider {
|
||||
|
||||
fun getOrCreateNote(hexKey: HexKey): Note =
|
||||
notes.getOrPut(hexKey) {
|
||||
Note(hexKey, this)
|
||||
Note(hexKey)
|
||||
}
|
||||
|
||||
override fun getOrCreateAddressableNote(key: Address): AddressableNote =
|
||||
addressableNotes.getOrPut(key.toValue()) {
|
||||
AddressableNote(key)
|
||||
}
|
||||
|
||||
// ----- Channel operations -----
|
||||
|
||||
override fun getAnyChannel(note: Any?): IChannel? {
|
||||
override fun getAnyChannel(note: Note): Channel? {
|
||||
// Desktop doesn't support channels yet
|
||||
return null
|
||||
}
|
||||
@@ -203,7 +212,7 @@ class DesktopLocalCache : ICacheProvider {
|
||||
override fun hasBeenDeleted(event: Any): Boolean =
|
||||
when (event) {
|
||||
is Note -> deletedEvents.contains(event.idHex)
|
||||
is com.vitorpamplona.quartz.nip01Core.core.Event -> deletedEvents.contains(event.id)
|
||||
is Event -> deletedEvents.contains(event.id)
|
||||
else -> false
|
||||
}
|
||||
|
||||
@@ -211,6 +220,13 @@ class DesktopLocalCache : ICacheProvider {
|
||||
deletedEvents.add(eventId)
|
||||
}
|
||||
|
||||
// ----- Own event consumption -----
|
||||
|
||||
override fun justConsumeMyOwnEvent(event: Event): Boolean {
|
||||
// Desktop doesn't track own events separately
|
||||
return false
|
||||
}
|
||||
|
||||
// ----- Event stream -----
|
||||
|
||||
override fun getEventStream(): ICacheEventStream = eventStream
|
||||
@@ -238,6 +254,7 @@ class DesktopLocalCache : ICacheProvider {
|
||||
fun clear() {
|
||||
users.clear()
|
||||
notes.clear()
|
||||
addressableNotes.clear()
|
||||
deletedEvents.clear()
|
||||
}
|
||||
}
|
||||
|
||||
+5
-6
@@ -44,18 +44,17 @@ import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.vitorpamplona.amethyst.commons.account.AccountState
|
||||
import com.vitorpamplona.amethyst.commons.state.EventCollectionState
|
||||
import com.vitorpamplona.amethyst.commons.subscriptions.FilterBuilders
|
||||
import com.vitorpamplona.amethyst.commons.subscriptions.SubscriptionConfig
|
||||
import com.vitorpamplona.amethyst.commons.subscriptions.rememberSubscription
|
||||
import com.vitorpamplona.amethyst.commons.ui.components.EmptyState
|
||||
import com.vitorpamplona.amethyst.commons.ui.components.LoadingState
|
||||
import com.vitorpamplona.amethyst.commons.ui.note.NoteCard
|
||||
import com.vitorpamplona.amethyst.commons.util.toNoteDisplayData
|
||||
import com.vitorpamplona.amethyst.desktop.account.AccountState
|
||||
import com.vitorpamplona.amethyst.desktop.cache.DesktopLocalCache
|
||||
import com.vitorpamplona.amethyst.desktop.network.DesktopRelayConnectionManager
|
||||
import com.vitorpamplona.amethyst.desktop.subscriptions.DesktopRelaySubscriptionsCoordinator
|
||||
import com.vitorpamplona.amethyst.desktop.subscriptions.FilterBuilders
|
||||
import com.vitorpamplona.amethyst.desktop.subscriptions.SubscriptionConfig
|
||||
import com.vitorpamplona.amethyst.desktop.subscriptions.rememberSubscription
|
||||
import com.vitorpamplona.amethyst.desktop.ui.note.NoteCard
|
||||
import com.vitorpamplona.quartz.nip01Core.core.Event
|
||||
import com.vitorpamplona.quartz.nip51Lists.bookmarkList.BookmarkListEvent
|
||||
import com.vitorpamplona.quartz.nip51Lists.bookmarkList.tags.EventBookmark
|
||||
|
||||
@@ -63,6 +63,7 @@ import com.vitorpamplona.amethyst.desktop.network.DesktopRelayConnectionManager
|
||||
import com.vitorpamplona.amethyst.desktop.subscriptions.DesktopRelaySubscriptionsCoordinator
|
||||
import com.vitorpamplona.amethyst.desktop.subscriptions.FeedMode
|
||||
import com.vitorpamplona.amethyst.desktop.subscriptions.FilterBuilders
|
||||
import com.vitorpamplona.amethyst.desktop.subscriptions.SubscriptionConfig
|
||||
import com.vitorpamplona.amethyst.desktop.subscriptions.createBatchMetadataSubscription
|
||||
import com.vitorpamplona.amethyst.desktop.subscriptions.createContactListSubscription
|
||||
import com.vitorpamplona.amethyst.desktop.subscriptions.createFollowingFeedSubscription
|
||||
@@ -207,7 +208,7 @@ fun FeedScreen(
|
||||
rememberSubscription(relayStatuses, account, relayManager = relayManager) {
|
||||
val configuredRelays = relayStatuses.keys
|
||||
if (configuredRelays.isNotEmpty() && account != null) {
|
||||
com.vitorpamplona.amethyst.commons.subscriptions.SubscriptionConfig(
|
||||
SubscriptionConfig(
|
||||
subId = "bookmarks-${account.pubKeyHex.take(8)}",
|
||||
filters =
|
||||
listOf(
|
||||
|
||||
@@ -53,17 +53,17 @@ import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.vitorpamplona.amethyst.commons.account.AccountState
|
||||
import com.vitorpamplona.amethyst.commons.state.EventCollectionState
|
||||
import com.vitorpamplona.amethyst.commons.subscriptions.FeedMode
|
||||
import com.vitorpamplona.amethyst.commons.subscriptions.createContactListSubscription
|
||||
import com.vitorpamplona.amethyst.commons.subscriptions.createFollowingLongFormFeedSubscription
|
||||
import com.vitorpamplona.amethyst.commons.subscriptions.createLongFormFeedSubscription
|
||||
import com.vitorpamplona.amethyst.commons.subscriptions.rememberSubscription
|
||||
import com.vitorpamplona.amethyst.commons.ui.components.EmptyState
|
||||
import com.vitorpamplona.amethyst.commons.ui.components.LoadingState
|
||||
import com.vitorpamplona.amethyst.desktop.account.AccountState
|
||||
import com.vitorpamplona.amethyst.desktop.cache.DesktopLocalCache
|
||||
import com.vitorpamplona.amethyst.desktop.network.DesktopRelayConnectionManager
|
||||
import com.vitorpamplona.amethyst.desktop.subscriptions.FeedMode
|
||||
import com.vitorpamplona.amethyst.desktop.subscriptions.createContactListSubscription
|
||||
import com.vitorpamplona.amethyst.desktop.subscriptions.createFollowingLongFormFeedSubscription
|
||||
import com.vitorpamplona.amethyst.desktop.subscriptions.createLongFormFeedSubscription
|
||||
import com.vitorpamplona.amethyst.desktop.subscriptions.rememberSubscription
|
||||
import com.vitorpamplona.quartz.nip02FollowList.ContactListEvent
|
||||
import com.vitorpamplona.quartz.nip23LongContent.LongTextNoteEvent
|
||||
import java.text.SimpleDateFormat
|
||||
|
||||
@@ -62,14 +62,14 @@ import androidx.compose.ui.focus.focusRequester
|
||||
import androidx.compose.ui.text.font.FontFamily
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.vitorpamplona.amethyst.commons.search.SearchResult
|
||||
import com.vitorpamplona.amethyst.commons.subscriptions.createMetadataSubscription
|
||||
import com.vitorpamplona.amethyst.commons.subscriptions.createSearchPeopleSubscription
|
||||
import com.vitorpamplona.amethyst.commons.subscriptions.rememberSubscription
|
||||
import com.vitorpamplona.amethyst.commons.ui.components.UserSearchCard
|
||||
import com.vitorpamplona.amethyst.commons.viewmodels.SearchBarState
|
||||
import com.vitorpamplona.amethyst.desktop.cache.DesktopLocalCache
|
||||
import com.vitorpamplona.amethyst.desktop.network.DesktopRelayConnectionManager
|
||||
import com.vitorpamplona.amethyst.desktop.subscriptions.DesktopRelaySubscriptionsCoordinator
|
||||
import com.vitorpamplona.amethyst.desktop.subscriptions.createMetadataSubscription
|
||||
import com.vitorpamplona.amethyst.desktop.subscriptions.createSearchPeopleSubscription
|
||||
import com.vitorpamplona.amethyst.desktop.subscriptions.rememberSubscription
|
||||
import com.vitorpamplona.quartz.nip01Core.metadata.MetadataEvent
|
||||
import com.vitorpamplona.quartz.nip19Bech32.decodePublicKeyAsHexOrNull
|
||||
|
||||
|
||||
Reference in New Issue
Block a user