Adding more event kind names to the relay settings
This commit is contained in:
+312
-48
@@ -20,6 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
package com.vitorpamplona.amethyst.ui.screen.loggedIn.relays
|
package com.vitorpamplona.amethyst.ui.screen.loggedIn.relays
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
@@ -72,8 +73,8 @@ import androidx.compose.material3.Icon
|
|||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.OutlinedCard
|
import androidx.compose.material3.OutlinedCard
|
||||||
import androidx.compose.material3.Scaffold
|
import androidx.compose.material3.Scaffold
|
||||||
import androidx.compose.material3.Surface
|
|
||||||
import androidx.compose.material3.SuggestionChip
|
import androidx.compose.material3.SuggestionChip
|
||||||
|
import androidx.compose.material3.Surface
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.material3.TopAppBar
|
import androidx.compose.material3.TopAppBar
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
@@ -95,8 +96,6 @@ import androidx.compose.ui.tooling.preview.Preview
|
|||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.vitorpamplona.amethyst.Amethyst
|
import com.vitorpamplona.amethyst.Amethyst
|
||||||
import com.vitorpamplona.amethyst.R
|
import com.vitorpamplona.amethyst.R
|
||||||
import com.vitorpamplona.quartz.nip01Core.relay.client.NostrClient
|
|
||||||
import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter
|
|
||||||
import com.vitorpamplona.amethyst.commons.util.timeDiffAgoShortish
|
import com.vitorpamplona.amethyst.commons.util.timeDiffAgoShortish
|
||||||
import com.vitorpamplona.amethyst.model.nip11RelayInfo.loadRelayInfo
|
import com.vitorpamplona.amethyst.model.nip11RelayInfo.loadRelayInfo
|
||||||
import com.vitorpamplona.amethyst.ui.actions.CrossfadeIfEnabled
|
import com.vitorpamplona.amethyst.ui.actions.CrossfadeIfEnabled
|
||||||
@@ -118,16 +117,144 @@ import com.vitorpamplona.amethyst.ui.theme.Size100dp
|
|||||||
import com.vitorpamplona.amethyst.ui.theme.StdHorzSpacer
|
import com.vitorpamplona.amethyst.ui.theme.StdHorzSpacer
|
||||||
import com.vitorpamplona.amethyst.ui.theme.StdVertSpacer
|
import com.vitorpamplona.amethyst.ui.theme.StdVertSpacer
|
||||||
import com.vitorpamplona.amethyst.ui.theme.ThemeComparisonRow
|
import com.vitorpamplona.amethyst.ui.theme.ThemeComparisonRow
|
||||||
|
import com.vitorpamplona.amethyst.ui.theme.bitcoinColor
|
||||||
|
import com.vitorpamplona.quartz.experimental.audio.header.AudioHeaderEvent
|
||||||
|
import com.vitorpamplona.quartz.experimental.audio.track.AudioTrackEvent
|
||||||
|
import com.vitorpamplona.quartz.experimental.edits.TextNoteModificationEvent
|
||||||
|
import com.vitorpamplona.quartz.experimental.ephemChat.chat.EphemeralChatEvent
|
||||||
|
import com.vitorpamplona.quartz.experimental.ephemChat.list.EphemeralChatListEvent
|
||||||
|
import com.vitorpamplona.quartz.experimental.interactiveStories.InteractiveStoryPrologueEvent
|
||||||
|
import com.vitorpamplona.quartz.experimental.interactiveStories.InteractiveStoryReadingStateEvent
|
||||||
|
import com.vitorpamplona.quartz.experimental.interactiveStories.InteractiveStorySceneEvent
|
||||||
|
import com.vitorpamplona.quartz.experimental.medical.FhirResourceEvent
|
||||||
|
import com.vitorpamplona.quartz.experimental.nip95.data.FileStorageEvent
|
||||||
|
import com.vitorpamplona.quartz.experimental.nip95.header.FileStorageHeaderEvent
|
||||||
|
import com.vitorpamplona.quartz.experimental.nipA3.PaymentTargetsEvent
|
||||||
|
import com.vitorpamplona.quartz.experimental.nipsOnNostr.NipTextEvent
|
||||||
|
import com.vitorpamplona.quartz.experimental.nns.NNSEvent
|
||||||
|
import com.vitorpamplona.quartz.experimental.profileGallery.ProfileGalleryEntryEvent
|
||||||
|
import com.vitorpamplona.quartz.experimental.publicMessages.PublicMessageEvent
|
||||||
|
import com.vitorpamplona.quartz.experimental.relationshipStatus.ContactCardEvent
|
||||||
|
import com.vitorpamplona.quartz.experimental.trustedAssertions.list.TrustProviderListEvent
|
||||||
|
import com.vitorpamplona.quartz.experimental.zapPolls.PollNoteEvent
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.metadata.MetadataEvent
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.relay.client.NostrClient
|
||||||
import com.vitorpamplona.quartz.nip01Core.relay.client.stats.ErrorDebugMessage
|
import com.vitorpamplona.quartz.nip01Core.relay.client.stats.ErrorDebugMessage
|
||||||
import com.vitorpamplona.quartz.nip01Core.relay.client.stats.IRelayDebugMessage
|
import com.vitorpamplona.quartz.nip01Core.relay.client.stats.IRelayDebugMessage
|
||||||
import com.vitorpamplona.quartz.nip01Core.relay.client.stats.NoticeDebugMessage
|
import com.vitorpamplona.quartz.nip01Core.relay.client.stats.NoticeDebugMessage
|
||||||
import com.vitorpamplona.quartz.nip01Core.relay.client.stats.RelayStat
|
import com.vitorpamplona.quartz.nip01Core.relay.client.stats.RelayStat
|
||||||
import com.vitorpamplona.quartz.nip01Core.relay.client.stats.SpamDebugMessage
|
import com.vitorpamplona.quartz.nip01Core.relay.client.stats.SpamDebugMessage
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter
|
||||||
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
|
||||||
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.RelayUrlNormalizer
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.RelayUrlNormalizer
|
||||||
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.displayUrl
|
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.displayUrl
|
||||||
|
import com.vitorpamplona.quartz.nip02FollowList.ContactListEvent
|
||||||
|
import com.vitorpamplona.quartz.nip03Timestamp.OtsEvent
|
||||||
|
import com.vitorpamplona.quartz.nip04Dm.messages.PrivateDmEvent
|
||||||
|
import com.vitorpamplona.quartz.nip09Deletions.DeletionEvent
|
||||||
|
import com.vitorpamplona.quartz.nip10Notes.TextNoteEvent
|
||||||
import com.vitorpamplona.quartz.nip11RelayInfo.Nip11RelayInformation
|
import com.vitorpamplona.quartz.nip11RelayInfo.Nip11RelayInformation
|
||||||
|
import com.vitorpamplona.quartz.nip17Dm.files.ChatMessageEncryptedFileHeaderEvent
|
||||||
|
import com.vitorpamplona.quartz.nip17Dm.messages.ChatMessageEvent
|
||||||
|
import com.vitorpamplona.quartz.nip17Dm.settings.ChatMessageRelayListEvent
|
||||||
|
import com.vitorpamplona.quartz.nip18Reposts.GenericRepostEvent
|
||||||
|
import com.vitorpamplona.quartz.nip18Reposts.RepostEvent
|
||||||
|
import com.vitorpamplona.quartz.nip22Comments.CommentEvent
|
||||||
|
import com.vitorpamplona.quartz.nip23LongContent.LongTextNoteEvent
|
||||||
|
import com.vitorpamplona.quartz.nip25Reactions.ReactionEvent
|
||||||
|
import com.vitorpamplona.quartz.nip28PublicChat.admin.ChannelCreateEvent
|
||||||
|
import com.vitorpamplona.quartz.nip28PublicChat.admin.ChannelHideMessageEvent
|
||||||
|
import com.vitorpamplona.quartz.nip28PublicChat.admin.ChannelMetadataEvent
|
||||||
|
import com.vitorpamplona.quartz.nip28PublicChat.admin.ChannelMuteUserEvent
|
||||||
|
import com.vitorpamplona.quartz.nip28PublicChat.list.ChannelListEvent
|
||||||
|
import com.vitorpamplona.quartz.nip28PublicChat.message.ChannelMessageEvent
|
||||||
|
import com.vitorpamplona.quartz.nip30CustomEmoji.pack.EmojiPackEvent
|
||||||
|
import com.vitorpamplona.quartz.nip30CustomEmoji.selection.EmojiPackSelectionEvent
|
||||||
|
import com.vitorpamplona.quartz.nip34Git.issue.GitIssueEvent
|
||||||
|
import com.vitorpamplona.quartz.nip34Git.patch.GitPatchEvent
|
||||||
|
import com.vitorpamplona.quartz.nip34Git.reply.GitReplyEvent
|
||||||
|
import com.vitorpamplona.quartz.nip34Git.repository.GitRepositoryEvent
|
||||||
|
import com.vitorpamplona.quartz.nip35Torrents.TorrentCommentEvent
|
||||||
|
import com.vitorpamplona.quartz.nip35Torrents.TorrentEvent
|
||||||
|
import com.vitorpamplona.quartz.nip37Drafts.DraftWrapEvent
|
||||||
|
import com.vitorpamplona.quartz.nip37Drafts.privateOutbox.PrivateOutboxRelayListEvent
|
||||||
|
import com.vitorpamplona.quartz.nip38UserStatus.StatusEvent
|
||||||
|
import com.vitorpamplona.quartz.nip42RelayAuth.RelayAuthEvent
|
||||||
|
import com.vitorpamplona.quartz.nip46RemoteSigner.NostrConnectEvent
|
||||||
|
import com.vitorpamplona.quartz.nip47WalletConnect.LnZapPaymentRequestEvent
|
||||||
|
import com.vitorpamplona.quartz.nip47WalletConnect.LnZapPaymentResponseEvent
|
||||||
|
import com.vitorpamplona.quartz.nip50Search.SearchRelayListEvent
|
||||||
|
import com.vitorpamplona.quartz.nip51Lists.PinListEvent
|
||||||
|
import com.vitorpamplona.quartz.nip51Lists.bookmarkList.BookmarkListEvent
|
||||||
|
import com.vitorpamplona.quartz.nip51Lists.followList.FollowListEvent
|
||||||
|
import com.vitorpamplona.quartz.nip51Lists.geohashList.GeohashListEvent
|
||||||
|
import com.vitorpamplona.quartz.nip51Lists.hashtagList.HashtagListEvent
|
||||||
|
import com.vitorpamplona.quartz.nip51Lists.labeledBookmarkList.LabeledBookmarkListEvent
|
||||||
|
import com.vitorpamplona.quartz.nip51Lists.muteList.MuteListEvent
|
||||||
|
import com.vitorpamplona.quartz.nip51Lists.peopleList.PeopleListEvent
|
||||||
|
import com.vitorpamplona.quartz.nip51Lists.relayLists.BlockedRelayListEvent
|
||||||
|
import com.vitorpamplona.quartz.nip51Lists.relayLists.BroadcastRelayListEvent
|
||||||
|
import com.vitorpamplona.quartz.nip51Lists.relayLists.IndexerRelayListEvent
|
||||||
|
import com.vitorpamplona.quartz.nip51Lists.relayLists.ProxyRelayListEvent
|
||||||
|
import com.vitorpamplona.quartz.nip51Lists.relayLists.TrustedRelayListEvent
|
||||||
|
import com.vitorpamplona.quartz.nip51Lists.relaySets.RelaySetEvent
|
||||||
|
import com.vitorpamplona.quartz.nip52Calendar.CalendarDateSlotEvent
|
||||||
|
import com.vitorpamplona.quartz.nip52Calendar.CalendarEvent
|
||||||
|
import com.vitorpamplona.quartz.nip52Calendar.CalendarRSVPEvent
|
||||||
|
import com.vitorpamplona.quartz.nip52Calendar.CalendarTimeSlotEvent
|
||||||
|
import com.vitorpamplona.quartz.nip53LiveActivities.chat.LiveActivitiesChatMessageEvent
|
||||||
|
import com.vitorpamplona.quartz.nip53LiveActivities.meetingSpaces.MeetingRoomEvent
|
||||||
|
import com.vitorpamplona.quartz.nip53LiveActivities.meetingSpaces.MeetingSpaceEvent
|
||||||
|
import com.vitorpamplona.quartz.nip53LiveActivities.presence.MeetingRoomPresenceEvent
|
||||||
|
import com.vitorpamplona.quartz.nip53LiveActivities.streaming.LiveActivitiesEvent
|
||||||
|
import com.vitorpamplona.quartz.nip54Wiki.WikiNoteEvent
|
||||||
|
import com.vitorpamplona.quartz.nip56Reports.ReportEvent
|
||||||
|
import com.vitorpamplona.quartz.nip57Zaps.LnZapEvent
|
||||||
|
import com.vitorpamplona.quartz.nip57Zaps.LnZapPrivateEvent
|
||||||
|
import com.vitorpamplona.quartz.nip57Zaps.LnZapRequestEvent
|
||||||
|
import com.vitorpamplona.quartz.nip58Badges.BadgeAwardEvent
|
||||||
|
import com.vitorpamplona.quartz.nip58Badges.BadgeDefinitionEvent
|
||||||
|
import com.vitorpamplona.quartz.nip58Badges.BadgeProfilesEvent
|
||||||
|
import com.vitorpamplona.quartz.nip59Giftwrap.seals.SealedRumorEvent
|
||||||
|
import com.vitorpamplona.quartz.nip59Giftwrap.wraps.GiftWrapEvent
|
||||||
|
import com.vitorpamplona.quartz.nip62RequestToVanish.RequestToVanishEvent
|
||||||
|
import com.vitorpamplona.quartz.nip64Chess.ChessGameEvent
|
||||||
|
import com.vitorpamplona.quartz.nip64Chess.JesterEvent
|
||||||
|
import com.vitorpamplona.quartz.nip64Chess.LiveChessDrawOfferEvent
|
||||||
|
import com.vitorpamplona.quartz.nip64Chess.LiveChessGameAcceptEvent
|
||||||
|
import com.vitorpamplona.quartz.nip64Chess.LiveChessGameChallengeEvent
|
||||||
|
import com.vitorpamplona.quartz.nip64Chess.LiveChessGameEndEvent
|
||||||
|
import com.vitorpamplona.quartz.nip64Chess.LiveChessMoveEvent
|
||||||
|
import com.vitorpamplona.quartz.nip65RelayList.AdvertisedRelayListEvent
|
||||||
|
import com.vitorpamplona.quartz.nip68Picture.PictureEvent
|
||||||
|
import com.vitorpamplona.quartz.nip71Video.VideoHorizontalEvent
|
||||||
|
import com.vitorpamplona.quartz.nip71Video.VideoNormalEvent
|
||||||
|
import com.vitorpamplona.quartz.nip71Video.VideoShortEvent
|
||||||
|
import com.vitorpamplona.quartz.nip71Video.VideoVerticalEvent
|
||||||
|
import com.vitorpamplona.quartz.nip72ModCommunities.approval.CommunityPostApprovalEvent
|
||||||
|
import com.vitorpamplona.quartz.nip72ModCommunities.definition.CommunityDefinitionEvent
|
||||||
|
import com.vitorpamplona.quartz.nip72ModCommunities.follow.CommunityListEvent
|
||||||
|
import com.vitorpamplona.quartz.nip75ZapGoals.GoalEvent
|
||||||
|
import com.vitorpamplona.quartz.nip78AppData.AppSpecificDataEvent
|
||||||
|
import com.vitorpamplona.quartz.nip84Highlights.HighlightEvent
|
||||||
|
import com.vitorpamplona.quartz.nip88Polls.poll.PollEvent
|
||||||
|
import com.vitorpamplona.quartz.nip88Polls.response.PollResponseEvent
|
||||||
|
import com.vitorpamplona.quartz.nip89AppHandlers.definition.AppDefinitionEvent
|
||||||
|
import com.vitorpamplona.quartz.nip89AppHandlers.recommendation.AppRecommendationEvent
|
||||||
|
import com.vitorpamplona.quartz.nip90Dvms.NIP90ContentDiscoveryRequestEvent
|
||||||
|
import com.vitorpamplona.quartz.nip90Dvms.NIP90ContentDiscoveryResponseEvent
|
||||||
|
import com.vitorpamplona.quartz.nip90Dvms.NIP90StatusEvent
|
||||||
|
import com.vitorpamplona.quartz.nip90Dvms.NIP90UserDiscoveryRequestEvent
|
||||||
|
import com.vitorpamplona.quartz.nip90Dvms.NIP90UserDiscoveryResponseEvent
|
||||||
|
import com.vitorpamplona.quartz.nip94FileMetadata.FileHeaderEvent
|
||||||
|
import com.vitorpamplona.quartz.nip96FileStorage.config.FileServersEvent
|
||||||
|
import com.vitorpamplona.quartz.nip98HttpAuth.HTTPAuthorizationEvent
|
||||||
|
import com.vitorpamplona.quartz.nip99Classifieds.ClassifiedsEvent
|
||||||
|
import com.vitorpamplona.quartz.nipA0VoiceMessages.VoiceEvent
|
||||||
|
import com.vitorpamplona.quartz.nipA0VoiceMessages.VoiceReplyEvent
|
||||||
|
import com.vitorpamplona.quartz.nipB7Blossom.BlossomAuthorizationEvent
|
||||||
|
import com.vitorpamplona.quartz.nipB7Blossom.BlossomServersEvent
|
||||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||||
import kotlinx.collections.immutable.ImmutableList
|
import kotlinx.collections.immutable.ImmutableList
|
||||||
import kotlinx.collections.immutable.persistentListOf
|
import kotlinx.collections.immutable.persistentListOf
|
||||||
@@ -345,59 +472,178 @@ fun RelayInformationBody(
|
|||||||
// Active subscriptions + outbox display
|
// Active subscriptions + outbox display
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
private fun kindDisplayName(kind: Int): String =
|
private fun kindDisplayName(
|
||||||
|
kind: Int,
|
||||||
|
context: Context,
|
||||||
|
): String =
|
||||||
when (kind) {
|
when (kind) {
|
||||||
0 -> "Profile"
|
AdvertisedRelayListEvent.KIND -> "Outbox Relays"
|
||||||
1 -> "Note"
|
AppDefinitionEvent.KIND -> "Apps"
|
||||||
2 -> "Relay"
|
AppRecommendationEvent.KIND -> "App Recommendations"
|
||||||
3 -> "Contacts"
|
AppSpecificDataEvent.KIND -> "User Settings"
|
||||||
4 -> "DM"
|
AudioHeaderEvent.KIND -> "Audio Header"
|
||||||
5 -> "Delete"
|
AudioTrackEvent.KIND -> "Audio Track"
|
||||||
6 -> "Repost"
|
BadgeAwardEvent.KIND -> "Badge Awards"
|
||||||
7 -> "Reaction"
|
BadgeDefinitionEvent.KIND -> "Badge Definitions"
|
||||||
8 -> "Badge"
|
BadgeProfilesEvent.KIND -> "Profile Badges"
|
||||||
9 -> "Chat"
|
BlockedRelayListEvent.KIND -> "Blocked Relays"
|
||||||
16 -> "GenRepost"
|
BlossomServersEvent.KIND -> "Blossom Servers"
|
||||||
40 -> "Channel"
|
BlossomAuthorizationEvent.KIND -> "Blossom Auth"
|
||||||
41 -> "ChMeta"
|
BroadcastRelayListEvent.KIND -> "Broadcast Relays"
|
||||||
42 -> "ChMsg"
|
BookmarkListEvent.KIND -> "Bookmark List"
|
||||||
1059 -> "GiftWrap"
|
CalendarDateSlotEvent.KIND -> "Day Appointment"
|
||||||
1311 -> "LiveChat"
|
CalendarEvent.KIND -> "Calendar"
|
||||||
1984 -> "Report"
|
CalendarTimeSlotEvent.KIND -> "Appointment"
|
||||||
9041 -> "ZapGoal"
|
CalendarRSVPEvent.KIND -> "Appt RSVP"
|
||||||
9734 -> "ZapReq"
|
ChessGameEvent.KIND -> "Chess Games"
|
||||||
9735 -> "Zap"
|
JesterEvent.KIND -> "Chess Auth"
|
||||||
10000 -> "Mute"
|
LiveChessGameChallengeEvent.KIND -> "Chess Challenges"
|
||||||
10001 -> "Pins"
|
LiveChessGameAcceptEvent.KIND -> "Chess Game Accept"
|
||||||
10002 -> "RelayList"
|
LiveChessMoveEvent.KIND -> "Chess Move"
|
||||||
10003 -> "Bookmarks"
|
LiveChessGameEndEvent.KIND -> "Chess Game End"
|
||||||
10004 -> "Communities"
|
LiveChessDrawOfferEvent.KIND -> "Chess Draw Offer"
|
||||||
10050 -> "DMRelays"
|
ChannelCreateEvent.KIND -> "Channel Definition"
|
||||||
17375 -> "Wallet"
|
ChannelHideMessageEvent.KIND -> "Channel Hide Msg"
|
||||||
23194 -> "NWC Req"
|
ChannelListEvent.KIND -> "Channel List"
|
||||||
23195 -> "NWC Resp"
|
ChannelMessageEvent.KIND -> "Channel Message"
|
||||||
30000 -> "FollowSets"
|
ChannelMetadataEvent.KIND -> "Channel Metadata"
|
||||||
30023 -> "Article"
|
ChannelMuteUserEvent.KIND -> "Channel Mute User"
|
||||||
30311 -> "LiveEvent"
|
ChatMessageEncryptedFileHeaderEvent.KIND -> "DM File"
|
||||||
|
ChatMessageEvent.KIND -> "DM Message"
|
||||||
|
ChatMessageRelayListEvent.KIND -> "DM Relays"
|
||||||
|
ClassifiedsEvent.KIND -> "Classifieds"
|
||||||
|
CommentEvent.KIND -> "Comments"
|
||||||
|
CommunityDefinitionEvent.KIND -> "Community Def"
|
||||||
|
CommunityListEvent.KIND -> "Community List"
|
||||||
|
CommunityPostApprovalEvent.KIND -> "Community Post"
|
||||||
|
ContactListEvent.KIND -> "Follow List"
|
||||||
|
DeletionEvent.KIND -> "Deletions"
|
||||||
|
DraftWrapEvent.KIND -> "Drafts"
|
||||||
|
EmojiPackEvent.KIND -> "Emoji Packs"
|
||||||
|
EmojiPackSelectionEvent.KIND -> "Emoji Pack List"
|
||||||
|
EphemeralChatEvent.KIND -> "Ephemeral Chat"
|
||||||
|
EphemeralChatListEvent.KIND -> "Ephemeral Chatrooms"
|
||||||
|
FileHeaderEvent.KIND -> "File Headers"
|
||||||
|
ProfileGalleryEntryEvent.KIND -> "Profile Gallery"
|
||||||
|
FileServersEvent.KIND -> "File Servers"
|
||||||
|
FileStorageEvent.KIND -> "Blob Data"
|
||||||
|
FileStorageHeaderEvent.KIND -> "Blob Headers"
|
||||||
|
FhirResourceEvent.KIND -> "Medical Data"
|
||||||
|
FollowListEvent.KIND -> "Follow Packs"
|
||||||
|
GenericRepostEvent.KIND -> "Reposts (16)"
|
||||||
|
GeohashListEvent.KIND -> "Geohash Follows"
|
||||||
|
GiftWrapEvent.KIND -> "GiftWraps"
|
||||||
|
GitIssueEvent.KIND -> "Git Issue"
|
||||||
|
GitPatchEvent.KIND -> "Git Path"
|
||||||
|
GitRepositoryEvent.KIND -> "Git Repo"
|
||||||
|
GitReplyEvent.KIND -> "Git Reply"
|
||||||
|
GoalEvent.KIND -> "Zap Goals"
|
||||||
|
HashtagListEvent.KIND -> "Hashtag Follows"
|
||||||
|
HighlightEvent.KIND -> "Highlights"
|
||||||
|
HTTPAuthorizationEvent.KIND -> "Http Auth"
|
||||||
|
IndexerRelayListEvent.KIND -> "Index Relay List"
|
||||||
|
InteractiveStoryPrologueEvent.KIND -> "Adventure Prologue"
|
||||||
|
InteractiveStorySceneEvent.KIND -> "Adventure Scene"
|
||||||
|
InteractiveStoryReadingStateEvent.KIND -> "Adventure Reading"
|
||||||
|
LabeledBookmarkListEvent.KIND -> "Named Bookmarks"
|
||||||
|
LiveActivitiesChatMessageEvent.KIND -> "Live Chats"
|
||||||
|
LiveActivitiesEvent.KIND -> "Live Streams"
|
||||||
|
LnZapEvent.KIND -> "Zap"
|
||||||
|
LnZapPaymentRequestEvent.KIND -> "NWC Request"
|
||||||
|
LnZapPaymentResponseEvent.KIND -> "NWC Response"
|
||||||
|
LnZapPrivateEvent.KIND -> "Private Zaps"
|
||||||
|
LnZapRequestEvent.KIND -> "Zap Req"
|
||||||
|
LongTextNoteEvent.KIND -> "Blogs"
|
||||||
|
MeetingRoomEvent.KIND -> "Meeting Room"
|
||||||
|
MeetingRoomPresenceEvent.KIND -> "Room Presence"
|
||||||
|
MeetingSpaceEvent.KIND -> "Meeting Space"
|
||||||
|
MetadataEvent.KIND -> "Profile"
|
||||||
|
MuteListEvent.KIND -> "Mute List"
|
||||||
|
NNSEvent.KIND -> "NNS"
|
||||||
|
NipTextEvent.KIND -> "NIP"
|
||||||
|
NostrConnectEvent.KIND -> "Nostr Connect"
|
||||||
|
NIP90StatusEvent.KIND -> "DVM Status"
|
||||||
|
NIP90ContentDiscoveryRequestEvent.KIND -> "DVM Content Req"
|
||||||
|
NIP90ContentDiscoveryResponseEvent.KIND -> "DVM Content Resp"
|
||||||
|
NIP90UserDiscoveryRequestEvent.KIND -> "DVM User Req"
|
||||||
|
NIP90UserDiscoveryResponseEvent.KIND -> "DVM User Resp"
|
||||||
|
OtsEvent.KIND -> "OTS"
|
||||||
|
PaymentTargetsEvent.KIND -> "PayTo"
|
||||||
|
PeopleListEvent.KIND -> "People Lists"
|
||||||
|
PictureEvent.KIND -> "Pictures"
|
||||||
|
PinListEvent.KIND -> "Pins"
|
||||||
|
PollNoteEvent.KIND -> "Zap Poll"
|
||||||
|
PollEvent.KIND -> "Poll"
|
||||||
|
PollResponseEvent.KIND -> "Poll Response"
|
||||||
|
PrivateDmEvent.KIND -> "NIP-04 DMs"
|
||||||
|
PrivateOutboxRelayListEvent.KIND -> "Private Relays"
|
||||||
|
ProxyRelayListEvent.KIND -> "Proxy Relays"
|
||||||
|
PublicMessageEvent.KIND -> "Public Message"
|
||||||
|
ReactionEvent.KIND -> "Reactions"
|
||||||
|
ContactCardEvent.KIND -> "Contact Card"
|
||||||
|
RelayAuthEvent.KIND -> "Relay Auth"
|
||||||
|
RelaySetEvent.KIND -> "Relay Set"
|
||||||
|
ReportEvent.KIND -> "Reports"
|
||||||
|
RepostEvent.KIND -> "Reposts"
|
||||||
|
RequestToVanishEvent.KIND -> "User Delete"
|
||||||
|
SealedRumorEvent.KIND -> "Seals"
|
||||||
|
SearchRelayListEvent.KIND -> "Search Relays"
|
||||||
|
StatusEvent.KIND -> "User Status"
|
||||||
|
TextNoteEvent.KIND -> "Notes"
|
||||||
|
TextNoteModificationEvent.KIND -> "Edits"
|
||||||
|
TorrentEvent.KIND -> "Torrents"
|
||||||
|
TorrentCommentEvent.KIND -> "Torrent Comments"
|
||||||
|
TrustedRelayListEvent.KIND -> "Trusted Relays"
|
||||||
|
TrustProviderListEvent.KIND -> "Trusted Providers"
|
||||||
|
VideoHorizontalEvent.KIND -> "Video (Repl)"
|
||||||
|
VideoVerticalEvent.KIND -> "Shorts (Repl)"
|
||||||
|
VideoNormalEvent.KIND -> "Video"
|
||||||
|
VideoShortEvent.KIND -> "Shorts"
|
||||||
|
VoiceEvent.KIND -> "Voice Msg"
|
||||||
|
VoiceReplyEvent.KIND -> "Voice Reply"
|
||||||
|
WikiNoteEvent.KIND -> "Wiki"
|
||||||
else -> "k$kind"
|
else -> "k$kind"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val posts = setOf(0, 1, 6, 7, 16, 30023)
|
||||||
|
val settings = setOf(3, 10002, 10000, 10001, 10003, 10004, 30000)
|
||||||
|
val dms = setOf(4, 1059, 10050)
|
||||||
|
val zaps = setOf(9734, 9735, 9041, 17375, 23194, 23195)
|
||||||
|
val reports = setOf(ReportEvent.KIND, MuteListEvent.KIND, DeletionEvent.KIND, RequestToVanishEvent.KIND)
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun KindChip(kind: Int) {
|
private fun KindChip(kind: Int) {
|
||||||
val name = kindDisplayName(kind)
|
val context = LocalContext.current
|
||||||
|
val name = kindDisplayName(kind, context)
|
||||||
val (bg, fg) =
|
val (bg, fg) =
|
||||||
when {
|
when (kind) {
|
||||||
kind in setOf(0, 1, 6, 7, 16, 30023) ->
|
in posts -> {
|
||||||
MaterialTheme.colorScheme.primaryContainer to MaterialTheme.colorScheme.onPrimaryContainer
|
MaterialTheme.colorScheme.primaryContainer to MaterialTheme.colorScheme.onPrimaryContainer
|
||||||
kind in setOf(3, 10002, 10000, 10001, 10003, 10004, 30000) ->
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
in settings -> {
|
||||||
MaterialTheme.colorScheme.secondaryContainer to MaterialTheme.colorScheme.onSecondaryContainer
|
MaterialTheme.colorScheme.secondaryContainer to MaterialTheme.colorScheme.onSecondaryContainer
|
||||||
kind in setOf(4, 1059, 10050) ->
|
}
|
||||||
|
|
||||||
|
// dms
|
||||||
|
in dms -> {
|
||||||
MaterialTheme.colorScheme.tertiaryContainer to MaterialTheme.colorScheme.onTertiaryContainer
|
MaterialTheme.colorScheme.tertiaryContainer to MaterialTheme.colorScheme.onTertiaryContainer
|
||||||
kind in setOf(9734, 9735, 9041, 17375, 23194, 23195) ->
|
}
|
||||||
MaterialTheme.colorScheme.errorContainer to MaterialTheme.colorScheme.onErrorContainer
|
|
||||||
else ->
|
// zaps
|
||||||
|
in zaps -> {
|
||||||
|
MaterialTheme.colorScheme.bitcoinColor to MaterialTheme.colorScheme.onBackground
|
||||||
|
}
|
||||||
|
|
||||||
|
in reports -> {
|
||||||
|
MaterialTheme.colorScheme.errorContainer to MaterialTheme.colorScheme.onError
|
||||||
|
}
|
||||||
|
|
||||||
|
else -> {
|
||||||
MaterialTheme.colorScheme.surfaceVariant to MaterialTheme.colorScheme.onSurfaceVariant
|
MaterialTheme.colorScheme.surfaceVariant to MaterialTheme.colorScheme.onSurfaceVariant
|
||||||
}
|
}
|
||||||
|
}
|
||||||
Surface(
|
Surface(
|
||||||
shape = RoundedCornerShape(50),
|
shape = RoundedCornerShape(50),
|
||||||
color = bg,
|
color = bg,
|
||||||
@@ -483,8 +729,17 @@ private fun FilterVisual(
|
|||||||
FilterAttributeChip(
|
FilterAttributeChip(
|
||||||
text =
|
text =
|
||||||
when {
|
when {
|
||||||
values.size == 1 -> "#$tagName:${values[0].take(8)}"
|
values.size == 1 -> {
|
||||||
else -> "#$tagName ×${values.size}"
|
if (values[0].length > 8) {
|
||||||
|
"#$tagName:${values[0].take(8)}..."
|
||||||
|
} else {
|
||||||
|
"#$tagName:${values[0]}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
else -> {
|
||||||
|
"#$tagName ×${values.size}"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
color = MaterialTheme.colorScheme.tertiaryContainer,
|
color = MaterialTheme.colorScheme.tertiaryContainer,
|
||||||
textColor = MaterialTheme.colorScheme.onTertiaryContainer,
|
textColor = MaterialTheme.colorScheme.onTertiaryContainer,
|
||||||
@@ -498,8 +753,17 @@ private fun FilterVisual(
|
|||||||
FilterAttributeChip(
|
FilterAttributeChip(
|
||||||
text =
|
text =
|
||||||
when {
|
when {
|
||||||
values.size == 1 -> "&$tagName:${values[0].take(8)}"
|
values.size == 1 -> {
|
||||||
else -> "&$tagName ×${values.size}"
|
if (values[0].length > 8) {
|
||||||
|
"&$tagName:${values[0].take(8)}..."
|
||||||
|
} else {
|
||||||
|
"&$tagName:${values[0]}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
else -> {
|
||||||
|
"&$tagName ×${values.size}"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
color = MaterialTheme.colorScheme.tertiaryContainer,
|
color = MaterialTheme.colorScheme.tertiaryContainer,
|
||||||
textColor = MaterialTheme.colorScheme.onTertiaryContainer,
|
textColor = MaterialTheme.colorScheme.onTertiaryContainer,
|
||||||
|
|||||||
Reference in New Issue
Block a user