mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-08-08 23:54:39 +00:00
fix: i18n kind names in signer consent; live icons in connected apps list
- Extract kindDisplayName() to KindDisplayName.kt and add kindNameFor() helper that picks the translated string resource when available, falls back to KindNames English map, then "k<number>" - NostrSignerOpLabels: use kindNameFor() so "sign for Notes (kind: 1)" is translated instead of always English - ConnectedAppsScreen: wire rememberNappletIconModel so the card icons load from blossom just like FavoriteAppsScreen does - Remove the now-duplicate kindDisplayName() definition from RelayInformationScreen.kt Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013hTFpoExYYLYEGGtXBx6ZT
This commit is contained in:
@@ -25,7 +25,7 @@ import com.vitorpamplona.amethyst.R
|
||||
import com.vitorpamplona.amethyst.commons.napplet.NappletIdentity
|
||||
import com.vitorpamplona.amethyst.commons.napplet.protocol.NappletRequest
|
||||
import com.vitorpamplona.amethyst.commons.napplet.signers.NostrSignerOp
|
||||
import com.vitorpamplona.quartz.kinds.KindNames
|
||||
import com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.kindNameFor
|
||||
import com.vitorpamplona.quartz.nip01Core.jackson.JacksonMapper
|
||||
import com.vitorpamplona.quartz.nip01Core.signers.EventTemplate
|
||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||
@@ -33,14 +33,7 @@ import com.vitorpamplona.quartz.utils.TimeUtils
|
||||
/** Human-readable label for a [NostrSignerOp]. */
|
||||
fun NostrSignerOp.label(context: Context): String =
|
||||
when (this) {
|
||||
is NostrSignerOp.SignKind -> {
|
||||
val name = KindNames.nameFor(kind)
|
||||
if (name != null) {
|
||||
context.getString(R.string.napplet_op_sign_kind_named, name, kind)
|
||||
} else {
|
||||
context.getString(R.string.napplet_op_sign_kind, kind)
|
||||
}
|
||||
}
|
||||
is NostrSignerOp.SignKind -> context.getString(R.string.napplet_op_sign_kind_named, kindNameFor(context, kind), kind)
|
||||
NostrSignerOp.Encrypt -> context.getString(R.string.napplet_op_encrypt)
|
||||
NostrSignerOp.Decrypt -> context.getString(R.string.napplet_op_decrypt)
|
||||
}
|
||||
|
||||
+3
@@ -61,6 +61,7 @@ import com.vitorpamplona.amethyst.commons.icons.symbols.MaterialSymbols
|
||||
import com.vitorpamplona.amethyst.commons.napplet.permissions.NappletPermissionLedger
|
||||
import com.vitorpamplona.amethyst.commons.napplet.signers.AppSignerPolicy
|
||||
import com.vitorpamplona.amethyst.commons.napplet.signers.NostrSignerPermissionLedger
|
||||
import com.vitorpamplona.amethyst.favorites.rememberNappletIconModel
|
||||
import com.vitorpamplona.amethyst.model.LocalCache
|
||||
import com.vitorpamplona.amethyst.napplet.resolveNappletMeta
|
||||
import com.vitorpamplona.amethyst.ui.navigation.navs.INav
|
||||
@@ -204,6 +205,7 @@ private fun ConnectedAppCard(
|
||||
entry: ConnectedAppEntry,
|
||||
onClick: () -> Unit,
|
||||
) {
|
||||
val iconModel = rememberNappletIconModel(entry.coordinate)
|
||||
Card(
|
||||
modifier = Modifier.fillMaxWidth().clickable(onClick = onClick),
|
||||
colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.surfaceVariant),
|
||||
@@ -215,6 +217,7 @@ private fun ConnectedAppCard(
|
||||
) {
|
||||
FavoriteAppIcon(
|
||||
app = FavoriteApp.NostrApp(entry.coordinate, entry.title, 0L, entry.iconUrl),
|
||||
iconModel = iconModel,
|
||||
tint = MaterialTheme.colorScheme.onPrimaryContainer,
|
||||
modifier = Modifier.size(48.dp),
|
||||
)
|
||||
|
||||
+336
@@ -0,0 +1,336 @@
|
||||
/*
|
||||
* Copyright (c) 2025 Vitor Pamplona
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
* this software and associated documentation files (the "Software"), to deal in
|
||||
* the Software without restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
|
||||
* Software, and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
package com.vitorpamplona.amethyst.ui.screen.loggedIn.relays
|
||||
|
||||
import android.content.Context
|
||||
import androidx.annotation.StringRes
|
||||
import com.vitorpamplona.amethyst.R
|
||||
import com.vitorpamplona.quartz.experimental.attestations.attestation.AttestationEvent
|
||||
import com.vitorpamplona.quartz.experimental.attestations.proficiency.AttestorProficiencyEvent
|
||||
import com.vitorpamplona.quartz.experimental.attestations.recommendation.AttestorRecommendationEvent
|
||||
import com.vitorpamplona.quartz.experimental.attestations.request.AttestationRequestEvent
|
||||
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.fitness.workout.WorkoutRecordEvent
|
||||
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.music.playlist.MusicPlaylistEvent
|
||||
import com.vitorpamplona.quartz.experimental.music.track.MusicTrackEvent
|
||||
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.notifications.wake.WakeUpEvent
|
||||
import com.vitorpamplona.quartz.experimental.profileGallery.ProfileGalleryEntryEvent
|
||||
import com.vitorpamplona.quartz.experimental.zapPolls.ZapPollEvent
|
||||
import com.vitorpamplona.quartz.kinds.KindNames
|
||||
import com.vitorpamplona.quartz.nip01Core.metadata.MetadataEvent
|
||||
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.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.events.LnZapPaymentRequestEvent
|
||||
import com.vitorpamplona.quartz.nip47WalletConnect.events.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.bookmarkList.OldBookmarkListEvent
|
||||
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.RelayFeedsListEvent
|
||||
import com.vitorpamplona.quartz.nip51Lists.relayLists.TrustedRelayListEvent
|
||||
import com.vitorpamplona.quartz.nip51Lists.relaySets.RelaySetEvent
|
||||
import com.vitorpamplona.quartz.nip52Calendar.appt.day.CalendarDateSlotEvent
|
||||
import com.vitorpamplona.quartz.nip52Calendar.appt.time.CalendarTimeSlotEvent
|
||||
import com.vitorpamplona.quartz.nip52Calendar.calendar.CalendarEvent
|
||||
import com.vitorpamplona.quartz.nip52Calendar.rsvp.CalendarRSVPEvent
|
||||
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.nestsServers.NestsServersEvent
|
||||
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.accepted.AcceptedBadgeSetEvent
|
||||
import com.vitorpamplona.quartz.nip58Badges.award.BadgeAwardEvent
|
||||
import com.vitorpamplona.quartz.nip58Badges.definition.BadgeDefinitionEvent
|
||||
import com.vitorpamplona.quartz.nip58Badges.profile.ProfileBadgesEvent
|
||||
import com.vitorpamplona.quartz.nip59Giftwrap.seals.SealedRumorEvent
|
||||
import com.vitorpamplona.quartz.nip59Giftwrap.wraps.EphemeralGiftWrapEvent
|
||||
import com.vitorpamplona.quartz.nip59Giftwrap.wraps.GiftWrapEvent
|
||||
import com.vitorpamplona.quartz.nip62RequestToVanish.RequestToVanishEvent
|
||||
import com.vitorpamplona.quartz.nip64Chess.challenge.accept.LiveChessGameAcceptEvent
|
||||
import com.vitorpamplona.quartz.nip64Chess.challenge.offer.LiveChessGameChallengeEvent
|
||||
import com.vitorpamplona.quartz.nip64Chess.draw.LiveChessDrawOfferEvent
|
||||
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
||||
import com.vitorpamplona.quartz.nip64Chess.game.ChessGameEvent
|
||||
import com.vitorpamplona.quartz.nip64Chess.jester.JesterEvent
|
||||
import com.vitorpamplona.quartz.nip64Chess.move.LiveChessMoveEvent
|
||||
import com.vitorpamplona.quartz.nip65RelayList.AdvertisedRelayListEvent
|
||||
import com.vitorpamplona.quartz.nip66RelayMonitor.discovery.RelayDiscoveryEvent
|
||||
import com.vitorpamplona.quartz.nip66RelayMonitor.monitor.RelayMonitorEvent
|
||||
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.nip85TrustedAssertions.list.TrustProviderListEvent
|
||||
import com.vitorpamplona.quartz.nip85TrustedAssertions.users.ContactCardEvent
|
||||
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.contentDiscoveryRequest.NIP90ContentDiscoveryRequestEvent
|
||||
import com.vitorpamplona.quartz.nip90Dvms.contentDiscoveryResponse.NIP90ContentDiscoveryResponseEvent
|
||||
import com.vitorpamplona.quartz.nip90Dvms.status.NIP90StatusEvent
|
||||
import com.vitorpamplona.quartz.nip90Dvms.userDiscoveryRequest.NIP90UserDiscoveryRequestEvent
|
||||
import com.vitorpamplona.quartz.nip90Dvms.userDiscoveryResponse.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.nipA4PublicMessages.PublicMessageEvent
|
||||
import com.vitorpamplona.quartz.nipB0WebBookmarks.WebBookmarkEvent
|
||||
import com.vitorpamplona.quartz.nipB7Blossom.BlossomAuthorizationEvent
|
||||
import com.vitorpamplona.quartz.nipB7Blossom.BlossomServersEvent
|
||||
import com.vitorpamplona.quartz.nipF4Podcasts.authored.AuthoredPodcastsEvent
|
||||
import com.vitorpamplona.quartz.nipF4Podcasts.episode.PodcastEpisodeEvent
|
||||
import com.vitorpamplona.quartz.nipF4Podcasts.favorites.FavoritePodcastsListEvent
|
||||
import com.vitorpamplona.quartz.nipF4Podcasts.metadata.PodcastMetadataEvent
|
||||
|
||||
/** Returns the `@StringRes` id for the translated kind name, or -1 if unknown. */
|
||||
@Suppress("DEPRECATION")
|
||||
@StringRes
|
||||
fun kindDisplayName(kind: Int): Int =
|
||||
when (kind) {
|
||||
AcceptedBadgeSetEvent.KIND -> R.string.kind_accepted_badge_set
|
||||
AdvertisedRelayListEvent.KIND -> R.string.kind_outbox_relays
|
||||
AppDefinitionEvent.KIND -> R.string.kind_apps
|
||||
AppRecommendationEvent.KIND -> R.string.kind_app_recommendations
|
||||
AppSpecificDataEvent.KIND -> R.string.kind_user_settings
|
||||
AudioHeaderEvent.KIND -> R.string.kind_audio_header
|
||||
AudioTrackEvent.KIND -> R.string.kind_audio_track
|
||||
MusicTrackEvent.KIND -> R.string.kind_music_track
|
||||
MusicPlaylistEvent.KIND -> R.string.kind_music_playlist
|
||||
PodcastEpisodeEvent.KIND -> R.string.kind_podcast_episode
|
||||
PodcastMetadataEvent.KIND -> R.string.kind_podcast_metadata
|
||||
AuthoredPodcastsEvent.KIND -> R.string.kind_authored_podcasts
|
||||
FavoritePodcastsListEvent.KIND -> R.string.kind_favorite_podcasts
|
||||
AttestationEvent.KIND -> R.string.attestation
|
||||
AttestationRequestEvent.KIND -> R.string.attestation_request
|
||||
AttestorRecommendationEvent.KIND -> R.string.attestor_recommendation
|
||||
AttestorProficiencyEvent.KIND -> R.string.attestor_proficiency
|
||||
BadgeAwardEvent.KIND -> R.string.kind_badge_awards
|
||||
BadgeDefinitionEvent.KIND -> R.string.kind_badge_definitions
|
||||
BlockedRelayListEvent.KIND -> R.string.kind_blocked_relays
|
||||
BlossomServersEvent.KIND -> R.string.kind_blossom_servers
|
||||
NestsServersEvent.KIND -> R.string.kind_nests_servers
|
||||
BlossomAuthorizationEvent.KIND -> R.string.kind_blossom_auth
|
||||
BroadcastRelayListEvent.KIND -> R.string.kind_broadcast_relays
|
||||
BookmarkListEvent.KIND -> R.string.kind_bookmark_list
|
||||
OldBookmarkListEvent.KIND -> R.string.kind_old_bookmark_list
|
||||
CalendarDateSlotEvent.KIND -> R.string.kind_day_appointment
|
||||
CalendarEvent.KIND -> R.string.kind_calendar
|
||||
CalendarTimeSlotEvent.KIND -> R.string.kind_appointment
|
||||
CalendarRSVPEvent.KIND -> R.string.kind_appt_rsvp
|
||||
ChessGameEvent.KIND -> R.string.kind_chess_games
|
||||
JesterEvent.KIND -> R.string.kind_chess_auth
|
||||
RelayFeedsListEvent.KIND -> R.string.kind_favorite_relays
|
||||
LiveChessGameChallengeEvent.KIND -> R.string.kind_chess_challenges
|
||||
LiveChessGameAcceptEvent.KIND -> R.string.kind_chess_game_accept
|
||||
LiveChessMoveEvent.KIND -> R.string.kind_chess_move
|
||||
LiveChessGameEndEvent.KIND -> R.string.kind_chess_game_end
|
||||
LiveChessDrawOfferEvent.KIND -> R.string.kind_chess_draw_offer
|
||||
ChannelCreateEvent.KIND -> R.string.kind_channel_definition
|
||||
ChannelHideMessageEvent.KIND -> R.string.kind_channel_hide_msg
|
||||
ChannelListEvent.KIND -> R.string.kind_channel_list
|
||||
ChannelMessageEvent.KIND -> R.string.kind_channel_message
|
||||
ChannelMetadataEvent.KIND -> R.string.kind_channel_metadata
|
||||
ChannelMuteUserEvent.KIND -> R.string.kind_channel_mute_user
|
||||
ChatMessageEncryptedFileHeaderEvent.KIND -> R.string.kind_dm_file
|
||||
ChatMessageEvent.KIND -> R.string.kind_dm_message
|
||||
ChatMessageRelayListEvent.KIND -> R.string.kind_dm_relays
|
||||
ClassifiedsEvent.KIND -> R.string.kind_classifieds
|
||||
CommentEvent.KIND -> R.string.kind_comments
|
||||
CommunityDefinitionEvent.KIND -> R.string.kind_community_def
|
||||
CommunityListEvent.KIND -> R.string.kind_community_list
|
||||
CommunityPostApprovalEvent.KIND -> R.string.kind_community_post
|
||||
ContactListEvent.KIND -> R.string.kind_follow_list
|
||||
DeletionEvent.KIND -> R.string.kind_deletions
|
||||
DraftWrapEvent.KIND -> R.string.kind_drafts
|
||||
EmojiPackEvent.KIND -> R.string.kind_emoji_packs
|
||||
EmojiPackSelectionEvent.KIND -> R.string.kind_emoji_pack_list
|
||||
EphemeralChatEvent.KIND -> R.string.kind_ephemeral_chat
|
||||
EphemeralChatListEvent.KIND -> R.string.kind_ephemeral_chatrooms
|
||||
FileHeaderEvent.KIND -> R.string.kind_file_headers
|
||||
ProfileGalleryEntryEvent.KIND -> R.string.kind_profile_gallery
|
||||
FileServersEvent.KIND -> R.string.kind_file_servers
|
||||
FileStorageEvent.KIND -> R.string.kind_blob_data
|
||||
FileStorageHeaderEvent.KIND -> R.string.kind_blob_headers
|
||||
FhirResourceEvent.KIND -> R.string.kind_medical_data
|
||||
FollowListEvent.KIND -> R.string.kind_follow_packs
|
||||
GenericRepostEvent.KIND -> R.string.kind_reposts_16
|
||||
GeohashListEvent.KIND -> R.string.kind_geohash_follows
|
||||
GiftWrapEvent.KIND -> R.string.kind_gift_wraps
|
||||
EphemeralGiftWrapEvent.KIND -> R.string.kind_gift_wraps
|
||||
GitIssueEvent.KIND -> R.string.kind_git_issue
|
||||
GitPatchEvent.KIND -> R.string.kind_git_patch
|
||||
GitRepositoryEvent.KIND -> R.string.kind_git_repo
|
||||
GitReplyEvent.KIND -> R.string.kind_git_reply
|
||||
GoalEvent.KIND -> R.string.kind_zap_goals
|
||||
HashtagListEvent.KIND -> R.string.kind_hashtag_follows
|
||||
HighlightEvent.KIND -> R.string.kind_highlights
|
||||
HTTPAuthorizationEvent.KIND -> R.string.kind_http_auth
|
||||
IndexerRelayListEvent.KIND -> R.string.kind_index_relay_list
|
||||
InteractiveStoryPrologueEvent.KIND -> R.string.kind_adventure_prologue
|
||||
InteractiveStorySceneEvent.KIND -> R.string.kind_adventure_scene
|
||||
InteractiveStoryReadingStateEvent.KIND -> R.string.kind_adventure_reading
|
||||
LabeledBookmarkListEvent.KIND -> R.string.kind_named_bookmarks
|
||||
LiveActivitiesChatMessageEvent.KIND -> R.string.kind_live_chats
|
||||
LiveActivitiesEvent.KIND -> R.string.kind_live_streams
|
||||
LnZapEvent.KIND -> R.string.kind_zaps
|
||||
LnZapPaymentRequestEvent.KIND -> R.string.kind_nwc_request
|
||||
LnZapPaymentResponseEvent.KIND -> R.string.kind_nwc_response
|
||||
LnZapPrivateEvent.KIND -> R.string.kind_private_zaps
|
||||
LnZapRequestEvent.KIND -> R.string.kind_zap_req
|
||||
LongTextNoteEvent.KIND -> R.string.kind_blogs
|
||||
MeetingRoomEvent.KIND -> R.string.kind_meeting_room
|
||||
MeetingRoomPresenceEvent.KIND -> R.string.kind_room_presence
|
||||
MeetingSpaceEvent.KIND -> R.string.kind_meeting_space
|
||||
MetadataEvent.KIND -> R.string.kind_profile
|
||||
MuteListEvent.KIND -> R.string.kind_mute_list
|
||||
NNSEvent.KIND -> R.string.kind_nns
|
||||
NipTextEvent.KIND -> R.string.kind_nip
|
||||
NostrConnectEvent.KIND -> R.string.kind_nostr_connect
|
||||
NIP90StatusEvent.KIND -> R.string.kind_dvm_status
|
||||
NIP90ContentDiscoveryRequestEvent.KIND -> R.string.kind_dvm_content_req
|
||||
NIP90ContentDiscoveryResponseEvent.KIND -> R.string.kind_dvm_content_resp
|
||||
NIP90UserDiscoveryRequestEvent.KIND -> R.string.kind_dvm_user_req
|
||||
NIP90UserDiscoveryResponseEvent.KIND -> R.string.kind_dvm_user_resp
|
||||
OtsEvent.KIND -> R.string.kind_ots
|
||||
PaymentTargetsEvent.KIND -> R.string.kind_pay_to
|
||||
PeopleListEvent.KIND -> R.string.kind_people_lists
|
||||
ProfileBadgesEvent.KIND -> R.string.kind_profile_badges
|
||||
PictureEvent.KIND -> R.string.kind_pictures
|
||||
WorkoutRecordEvent.KIND -> R.string.kind_workouts
|
||||
PinListEvent.KIND -> R.string.kind_pins
|
||||
ZapPollEvent.KIND -> R.string.kind_zap_poll
|
||||
PollEvent.KIND -> R.string.kind_poll
|
||||
PollResponseEvent.KIND -> R.string.kind_poll_response
|
||||
PrivateDmEvent.KIND -> R.string.kind_nip04_dms
|
||||
PrivateOutboxRelayListEvent.KIND -> R.string.kind_private_relays
|
||||
ProxyRelayListEvent.KIND -> R.string.kind_proxy_relays
|
||||
PublicMessageEvent.KIND -> R.string.kind_public_message
|
||||
ReactionEvent.KIND -> R.string.kind_reactions
|
||||
ContactCardEvent.KIND -> R.string.kind_contact_card
|
||||
RelayAuthEvent.KIND -> R.string.kind_relay_auth
|
||||
RelayDiscoveryEvent.KIND -> R.string.kind_relay_discovery
|
||||
RelayMonitorEvent.KIND -> R.string.kind_relay_monitor
|
||||
RelaySetEvent.KIND -> R.string.kind_relay_set
|
||||
ReportEvent.KIND -> R.string.kind_reports
|
||||
RepostEvent.KIND -> R.string.kind_reposts
|
||||
RequestToVanishEvent.KIND -> R.string.kind_user_delete
|
||||
SealedRumorEvent.KIND -> R.string.kind_seals
|
||||
SearchRelayListEvent.KIND -> R.string.kind_search_relays
|
||||
StatusEvent.KIND -> R.string.kind_user_status
|
||||
TextNoteEvent.KIND -> R.string.kind_notes
|
||||
TextNoteModificationEvent.KIND -> R.string.kind_edits
|
||||
TorrentEvent.KIND -> R.string.kind_torrents
|
||||
TorrentCommentEvent.KIND -> R.string.kind_torrent_comments
|
||||
TrustedRelayListEvent.KIND -> R.string.kind_trusted_relays
|
||||
TrustProviderListEvent.KIND -> R.string.kind_trusted_providers
|
||||
VideoHorizontalEvent.KIND -> R.string.kind_video_repl
|
||||
VideoVerticalEvent.KIND -> R.string.kind_shorts_repl
|
||||
VideoNormalEvent.KIND -> R.string.kind_video
|
||||
VideoShortEvent.KIND -> R.string.kind_shorts
|
||||
VoiceEvent.KIND -> R.string.kind_voice_msg
|
||||
VoiceReplyEvent.KIND -> R.string.kind_voice_reply
|
||||
WakeUpEvent.KIND -> R.string.kind_wake
|
||||
WebBookmarkEvent.KIND -> R.string.kind_web_bookmark
|
||||
WikiNoteEvent.KIND -> R.string.kind_wiki
|
||||
else -> -1
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the translated display name for [kind] using Android string resources when available,
|
||||
* falling back to the English name from [KindNames], then to "k<number>".
|
||||
*/
|
||||
fun kindNameFor(
|
||||
context: Context,
|
||||
kind: Int,
|
||||
): String {
|
||||
val resId = kindDisplayName(kind)
|
||||
return if (resId != -1) context.getString(resId) else (KindNames.nameFor(kind) ?: "k$kind")
|
||||
}
|
||||
-289
@@ -109,33 +109,8 @@ import com.vitorpamplona.amethyst.ui.theme.StdVertSpacer
|
||||
import com.vitorpamplona.amethyst.ui.theme.ThemeComparisonRow
|
||||
import com.vitorpamplona.amethyst.ui.theme.bitcoinColor
|
||||
import com.vitorpamplona.amethyst.ui.theme.redColorOnSecondSurface
|
||||
import com.vitorpamplona.quartz.experimental.attestations.attestation.AttestationEvent
|
||||
import com.vitorpamplona.quartz.experimental.attestations.proficiency.AttestorProficiencyEvent
|
||||
import com.vitorpamplona.quartz.experimental.attestations.recommendation.AttestorRecommendationEvent
|
||||
import com.vitorpamplona.quartz.experimental.attestations.request.AttestationRequestEvent
|
||||
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.fitness.workout.WorkoutRecordEvent
|
||||
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.music.playlist.MusicPlaylistEvent
|
||||
import com.vitorpamplona.quartz.experimental.music.track.MusicTrackEvent
|
||||
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.notifications.wake.WakeUpEvent
|
||||
import com.vitorpamplona.quartz.experimental.profileGallery.ProfileGalleryEntryEvent
|
||||
import com.vitorpamplona.quartz.experimental.zapPolls.ZapPollEvent
|
||||
import com.vitorpamplona.quartz.kinds.KindNames
|
||||
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
||||
import com.vitorpamplona.quartz.nip01Core.metadata.MetadataEvent
|
||||
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.IRelayDebugMessageText
|
||||
@@ -146,128 +121,15 @@ import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.RelayUrlNormalizer
|
||||
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.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.events.LnZapPaymentRequestEvent
|
||||
import com.vitorpamplona.quartz.nip47WalletConnect.events.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.bookmarkList.OldBookmarkListEvent
|
||||
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.RelayFeedsListEvent
|
||||
import com.vitorpamplona.quartz.nip51Lists.relayLists.TrustedRelayListEvent
|
||||
import com.vitorpamplona.quartz.nip51Lists.relaySets.RelaySetEvent
|
||||
import com.vitorpamplona.quartz.nip52Calendar.appt.day.CalendarDateSlotEvent
|
||||
import com.vitorpamplona.quartz.nip52Calendar.appt.time.CalendarTimeSlotEvent
|
||||
import com.vitorpamplona.quartz.nip52Calendar.calendar.CalendarEvent
|
||||
import com.vitorpamplona.quartz.nip52Calendar.rsvp.CalendarRSVPEvent
|
||||
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.nestsServers.NestsServersEvent
|
||||
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.accepted.AcceptedBadgeSetEvent
|
||||
import com.vitorpamplona.quartz.nip58Badges.award.BadgeAwardEvent
|
||||
import com.vitorpamplona.quartz.nip58Badges.definition.BadgeDefinitionEvent
|
||||
import com.vitorpamplona.quartz.nip58Badges.profile.ProfileBadgesEvent
|
||||
import com.vitorpamplona.quartz.nip59Giftwrap.seals.SealedRumorEvent
|
||||
import com.vitorpamplona.quartz.nip59Giftwrap.wraps.EphemeralGiftWrapEvent
|
||||
import com.vitorpamplona.quartz.nip59Giftwrap.wraps.GiftWrapEvent
|
||||
import com.vitorpamplona.quartz.nip62RequestToVanish.RequestToVanishEvent
|
||||
import com.vitorpamplona.quartz.nip64Chess.challenge.accept.LiveChessGameAcceptEvent
|
||||
import com.vitorpamplona.quartz.nip64Chess.challenge.offer.LiveChessGameChallengeEvent
|
||||
import com.vitorpamplona.quartz.nip64Chess.draw.LiveChessDrawOfferEvent
|
||||
import com.vitorpamplona.quartz.nip64Chess.end.LiveChessGameEndEvent
|
||||
import com.vitorpamplona.quartz.nip64Chess.game.ChessGameEvent
|
||||
import com.vitorpamplona.quartz.nip64Chess.jester.JesterEvent
|
||||
import com.vitorpamplona.quartz.nip64Chess.move.LiveChessMoveEvent
|
||||
import com.vitorpamplona.quartz.nip65RelayList.AdvertisedRelayListEvent
|
||||
import com.vitorpamplona.quartz.nip66RelayMonitor.discovery.RelayDiscoveryEvent
|
||||
import com.vitorpamplona.quartz.nip66RelayMonitor.monitor.RelayMonitorEvent
|
||||
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.nip85TrustedAssertions.list.TrustProviderListEvent
|
||||
import com.vitorpamplona.quartz.nip85TrustedAssertions.users.ContactCardEvent
|
||||
import com.vitorpamplona.quartz.nip86RelayManagement.Nip86Client
|
||||
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.contentDiscoveryRequest.NIP90ContentDiscoveryRequestEvent
|
||||
import com.vitorpamplona.quartz.nip90Dvms.contentDiscoveryResponse.NIP90ContentDiscoveryResponseEvent
|
||||
import com.vitorpamplona.quartz.nip90Dvms.status.NIP90StatusEvent
|
||||
import com.vitorpamplona.quartz.nip90Dvms.userDiscoveryRequest.NIP90UserDiscoveryRequestEvent
|
||||
import com.vitorpamplona.quartz.nip90Dvms.userDiscoveryResponse.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.nipA4PublicMessages.PublicMessageEvent
|
||||
import com.vitorpamplona.quartz.nipB0WebBookmarks.WebBookmarkEvent
|
||||
import com.vitorpamplona.quartz.nipB7Blossom.BlossomAuthorizationEvent
|
||||
import com.vitorpamplona.quartz.nipB7Blossom.BlossomServersEvent
|
||||
import com.vitorpamplona.quartz.nipF4Podcasts.authored.AuthoredPodcastsEvent
|
||||
import com.vitorpamplona.quartz.nipF4Podcasts.episode.PodcastEpisodeEvent
|
||||
import com.vitorpamplona.quartz.nipF4Podcasts.favorites.FavoritePodcastsListEvent
|
||||
import com.vitorpamplona.quartz.nipF4Podcasts.metadata.PodcastMetadataEvent
|
||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
@@ -535,157 +397,6 @@ fun RelayInformationBody(
|
||||
// Active subscriptions + outbox display
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
fun kindDisplayName(kind: Int): Int =
|
||||
when (kind) {
|
||||
AcceptedBadgeSetEvent.KIND -> R.string.kind_accepted_badge_set
|
||||
AdvertisedRelayListEvent.KIND -> R.string.kind_outbox_relays
|
||||
AppDefinitionEvent.KIND -> R.string.kind_apps
|
||||
AppRecommendationEvent.KIND -> R.string.kind_app_recommendations
|
||||
AppSpecificDataEvent.KIND -> R.string.kind_user_settings
|
||||
AudioHeaderEvent.KIND -> R.string.kind_audio_header
|
||||
AudioTrackEvent.KIND -> R.string.kind_audio_track
|
||||
MusicTrackEvent.KIND -> R.string.kind_music_track
|
||||
MusicPlaylistEvent.KIND -> R.string.kind_music_playlist
|
||||
PodcastEpisodeEvent.KIND -> R.string.kind_podcast_episode
|
||||
PodcastMetadataEvent.KIND -> R.string.kind_podcast_metadata
|
||||
AuthoredPodcastsEvent.KIND -> R.string.kind_authored_podcasts
|
||||
FavoritePodcastsListEvent.KIND -> R.string.kind_favorite_podcasts
|
||||
AttestationEvent.KIND -> R.string.attestation
|
||||
AttestationRequestEvent.KIND -> R.string.attestation_request
|
||||
AttestorRecommendationEvent.KIND -> R.string.attestor_recommendation
|
||||
AttestorProficiencyEvent.KIND -> R.string.attestor_proficiency
|
||||
BadgeAwardEvent.KIND -> R.string.kind_badge_awards
|
||||
BadgeDefinitionEvent.KIND -> R.string.kind_badge_definitions
|
||||
BlockedRelayListEvent.KIND -> R.string.kind_blocked_relays
|
||||
BlossomServersEvent.KIND -> R.string.kind_blossom_servers
|
||||
NestsServersEvent.KIND -> R.string.kind_nests_servers
|
||||
BlossomAuthorizationEvent.KIND -> R.string.kind_blossom_auth
|
||||
BroadcastRelayListEvent.KIND -> R.string.kind_broadcast_relays
|
||||
BookmarkListEvent.KIND -> R.string.kind_bookmark_list
|
||||
OldBookmarkListEvent.KIND -> R.string.kind_old_bookmark_list
|
||||
CalendarDateSlotEvent.KIND -> R.string.kind_day_appointment
|
||||
CalendarEvent.KIND -> R.string.kind_calendar
|
||||
CalendarTimeSlotEvent.KIND -> R.string.kind_appointment
|
||||
CalendarRSVPEvent.KIND -> R.string.kind_appt_rsvp
|
||||
ChessGameEvent.KIND -> R.string.kind_chess_games
|
||||
JesterEvent.KIND -> R.string.kind_chess_auth
|
||||
RelayFeedsListEvent.KIND -> R.string.kind_favorite_relays
|
||||
LiveChessGameChallengeEvent.KIND -> R.string.kind_chess_challenges
|
||||
LiveChessGameAcceptEvent.KIND -> R.string.kind_chess_game_accept
|
||||
LiveChessMoveEvent.KIND -> R.string.kind_chess_move
|
||||
LiveChessGameEndEvent.KIND -> R.string.kind_chess_game_end
|
||||
LiveChessDrawOfferEvent.KIND -> R.string.kind_chess_draw_offer
|
||||
ChannelCreateEvent.KIND -> R.string.kind_channel_definition
|
||||
ChannelHideMessageEvent.KIND -> R.string.kind_channel_hide_msg
|
||||
ChannelListEvent.KIND -> R.string.kind_channel_list
|
||||
ChannelMessageEvent.KIND -> R.string.kind_channel_message
|
||||
ChannelMetadataEvent.KIND -> R.string.kind_channel_metadata
|
||||
ChannelMuteUserEvent.KIND -> R.string.kind_channel_mute_user
|
||||
ChatMessageEncryptedFileHeaderEvent.KIND -> R.string.kind_dm_file
|
||||
ChatMessageEvent.KIND -> R.string.kind_dm_message
|
||||
ChatMessageRelayListEvent.KIND -> R.string.kind_dm_relays
|
||||
ClassifiedsEvent.KIND -> R.string.kind_classifieds
|
||||
CommentEvent.KIND -> R.string.kind_comments
|
||||
CommunityDefinitionEvent.KIND -> R.string.kind_community_def
|
||||
CommunityListEvent.KIND -> R.string.kind_community_list
|
||||
CommunityPostApprovalEvent.KIND -> R.string.kind_community_post
|
||||
ContactListEvent.KIND -> R.string.kind_follow_list
|
||||
DeletionEvent.KIND -> R.string.kind_deletions
|
||||
DraftWrapEvent.KIND -> R.string.kind_drafts
|
||||
EmojiPackEvent.KIND -> R.string.kind_emoji_packs
|
||||
EmojiPackSelectionEvent.KIND -> R.string.kind_emoji_pack_list
|
||||
EphemeralChatEvent.KIND -> R.string.kind_ephemeral_chat
|
||||
EphemeralChatListEvent.KIND -> R.string.kind_ephemeral_chatrooms
|
||||
FileHeaderEvent.KIND -> R.string.kind_file_headers
|
||||
ProfileGalleryEntryEvent.KIND -> R.string.kind_profile_gallery
|
||||
FileServersEvent.KIND -> R.string.kind_file_servers
|
||||
FileStorageEvent.KIND -> R.string.kind_blob_data
|
||||
FileStorageHeaderEvent.KIND -> R.string.kind_blob_headers
|
||||
FhirResourceEvent.KIND -> R.string.kind_medical_data
|
||||
FollowListEvent.KIND -> R.string.kind_follow_packs
|
||||
GenericRepostEvent.KIND -> R.string.kind_reposts_16
|
||||
GeohashListEvent.KIND -> R.string.kind_geohash_follows
|
||||
GiftWrapEvent.KIND -> R.string.kind_gift_wraps
|
||||
EphemeralGiftWrapEvent.KIND -> R.string.kind_gift_wraps
|
||||
GitIssueEvent.KIND -> R.string.kind_git_issue
|
||||
GitPatchEvent.KIND -> R.string.kind_git_patch
|
||||
GitRepositoryEvent.KIND -> R.string.kind_git_repo
|
||||
GitReplyEvent.KIND -> R.string.kind_git_reply
|
||||
GoalEvent.KIND -> R.string.kind_zap_goals
|
||||
HashtagListEvent.KIND -> R.string.kind_hashtag_follows
|
||||
HighlightEvent.KIND -> R.string.kind_highlights
|
||||
HTTPAuthorizationEvent.KIND -> R.string.kind_http_auth
|
||||
IndexerRelayListEvent.KIND -> R.string.kind_index_relay_list
|
||||
InteractiveStoryPrologueEvent.KIND -> R.string.kind_adventure_prologue
|
||||
InteractiveStorySceneEvent.KIND -> R.string.kind_adventure_scene
|
||||
InteractiveStoryReadingStateEvent.KIND -> R.string.kind_adventure_reading
|
||||
LabeledBookmarkListEvent.KIND -> R.string.kind_named_bookmarks
|
||||
LiveActivitiesChatMessageEvent.KIND -> R.string.kind_live_chats
|
||||
LiveActivitiesEvent.KIND -> R.string.kind_live_streams
|
||||
LnZapEvent.KIND -> R.string.kind_zaps
|
||||
LnZapPaymentRequestEvent.KIND -> R.string.kind_nwc_request
|
||||
LnZapPaymentResponseEvent.KIND -> R.string.kind_nwc_response
|
||||
LnZapPrivateEvent.KIND -> R.string.kind_private_zaps
|
||||
LnZapRequestEvent.KIND -> R.string.kind_zap_req
|
||||
LongTextNoteEvent.KIND -> R.string.kind_blogs
|
||||
MeetingRoomEvent.KIND -> R.string.kind_meeting_room
|
||||
MeetingRoomPresenceEvent.KIND -> R.string.kind_room_presence
|
||||
MeetingSpaceEvent.KIND -> R.string.kind_meeting_space
|
||||
MetadataEvent.KIND -> R.string.kind_profile
|
||||
MuteListEvent.KIND -> R.string.kind_mute_list
|
||||
NNSEvent.KIND -> R.string.kind_nns
|
||||
NipTextEvent.KIND -> R.string.kind_nip
|
||||
NostrConnectEvent.KIND -> R.string.kind_nostr_connect
|
||||
NIP90StatusEvent.KIND -> R.string.kind_dvm_status
|
||||
NIP90ContentDiscoveryRequestEvent.KIND -> R.string.kind_dvm_content_req
|
||||
NIP90ContentDiscoveryResponseEvent.KIND -> R.string.kind_dvm_content_resp
|
||||
NIP90UserDiscoveryRequestEvent.KIND -> R.string.kind_dvm_user_req
|
||||
NIP90UserDiscoveryResponseEvent.KIND -> R.string.kind_dvm_user_resp
|
||||
OtsEvent.KIND -> R.string.kind_ots
|
||||
PaymentTargetsEvent.KIND -> R.string.kind_pay_to
|
||||
PeopleListEvent.KIND -> R.string.kind_people_lists
|
||||
ProfileBadgesEvent.KIND -> R.string.kind_profile_badges
|
||||
PictureEvent.KIND -> R.string.kind_pictures
|
||||
WorkoutRecordEvent.KIND -> R.string.kind_workouts
|
||||
PinListEvent.KIND -> R.string.kind_pins
|
||||
ZapPollEvent.KIND -> R.string.kind_zap_poll
|
||||
PollEvent.KIND -> R.string.kind_poll
|
||||
PollResponseEvent.KIND -> R.string.kind_poll_response
|
||||
PrivateDmEvent.KIND -> R.string.kind_nip04_dms
|
||||
PrivateOutboxRelayListEvent.KIND -> R.string.kind_private_relays
|
||||
ProxyRelayListEvent.KIND -> R.string.kind_proxy_relays
|
||||
PublicMessageEvent.KIND -> R.string.kind_public_message
|
||||
ReactionEvent.KIND -> R.string.kind_reactions
|
||||
ContactCardEvent.KIND -> R.string.kind_contact_card
|
||||
RelayAuthEvent.KIND -> R.string.kind_relay_auth
|
||||
RelayDiscoveryEvent.KIND -> R.string.kind_relay_discovery
|
||||
RelayMonitorEvent.KIND -> R.string.kind_relay_monitor
|
||||
RelaySetEvent.KIND -> R.string.kind_relay_set
|
||||
ReportEvent.KIND -> R.string.kind_reports
|
||||
RepostEvent.KIND -> R.string.kind_reposts
|
||||
RequestToVanishEvent.KIND -> R.string.kind_user_delete
|
||||
SealedRumorEvent.KIND -> R.string.kind_seals
|
||||
SearchRelayListEvent.KIND -> R.string.kind_search_relays
|
||||
StatusEvent.KIND -> R.string.kind_user_status
|
||||
TextNoteEvent.KIND -> R.string.kind_notes
|
||||
TextNoteModificationEvent.KIND -> R.string.kind_edits
|
||||
TorrentEvent.KIND -> R.string.kind_torrents
|
||||
TorrentCommentEvent.KIND -> R.string.kind_torrent_comments
|
||||
TrustedRelayListEvent.KIND -> R.string.kind_trusted_relays
|
||||
TrustProviderListEvent.KIND -> R.string.kind_trusted_providers
|
||||
VideoHorizontalEvent.KIND -> R.string.kind_video_repl
|
||||
VideoVerticalEvent.KIND -> R.string.kind_shorts_repl
|
||||
VideoNormalEvent.KIND -> R.string.kind_video
|
||||
VideoShortEvent.KIND -> R.string.kind_shorts
|
||||
VoiceEvent.KIND -> R.string.kind_voice_msg
|
||||
VoiceReplyEvent.KIND -> R.string.kind_voice_reply
|
||||
WakeUpEvent.KIND -> R.string.kind_wake
|
||||
WebBookmarkEvent.KIND -> R.string.kind_web_bookmark
|
||||
WikiNoteEvent.KIND -> R.string.kind_wiki
|
||||
else -> -1
|
||||
}
|
||||
|
||||
val posts = setOf(0, 1, 6, 7, 16, 30023)
|
||||
val settings = setOf(3, 10002, 10000, 10001, 10003, 10004, 30000)
|
||||
val dms = setOf(4, GiftWrapEvent.KIND, EphemeralGiftWrapEvent.KIND, 10050)
|
||||
|
||||
Reference in New Issue
Block a user