diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/Event.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/Event.kt index f81ab3e91..6d1d38932 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/model/Event.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/Event.kt @@ -274,52 +274,8 @@ open class Event( fun fromJson(json: JsonElement, lenient: Boolean = false): Event = gson.fromJson(json, Event::class.java).getRefinedEvent(lenient) - fun Event.getRefinedEvent(lenient: Boolean = false): Event = when (kind) { - AppDefinitionEvent.kind -> AppDefinitionEvent(id, pubKey, createdAt, tags, content, sig) - AppRecommendationEvent.kind -> AppRecommendationEvent(id, pubKey, createdAt, tags, content, sig) - AudioTrackEvent.kind -> AudioTrackEvent(id, pubKey, createdAt, tags, content, sig) - BadgeAwardEvent.kind -> BadgeAwardEvent(id, pubKey, createdAt, tags, content, sig) - BadgeDefinitionEvent.kind -> BadgeDefinitionEvent(id, pubKey, createdAt, tags, content, sig) - BadgeProfilesEvent.kind -> BadgeProfilesEvent(id, pubKey, createdAt, tags, content, sig) - BookmarkListEvent.kind -> BookmarkListEvent(id, pubKey, createdAt, tags, content, sig) - ChannelCreateEvent.kind -> ChannelCreateEvent(id, pubKey, createdAt, tags, content, sig) - ChannelHideMessageEvent.kind -> ChannelHideMessageEvent(id, pubKey, createdAt, tags, content, sig) - ChannelMessageEvent.kind -> ChannelMessageEvent(id, pubKey, createdAt, tags, content, sig) - ChannelMetadataEvent.kind -> ChannelMetadataEvent(id, pubKey, createdAt, tags, content, sig) - ChannelMuteUserEvent.kind -> ChannelMuteUserEvent(id, pubKey, createdAt, tags, content, sig) - ClassifiedsEvent.kind -> ClassifiedsEvent(id, pubKey, createdAt, tags, content, sig) - CommunityDefinitionEvent.kind -> CommunityDefinitionEvent(id, pubKey, createdAt, tags, content, sig) - CommunityPostApprovalEvent.kind -> CommunityPostApprovalEvent(id, pubKey, createdAt, tags, content, sig) - ContactListEvent.kind -> ContactListEvent(id, pubKey, createdAt, tags, content, sig) - DeletionEvent.kind -> DeletionEvent(id, pubKey, createdAt, tags, content, sig) - EmojiPackEvent.kind -> EmojiPackEvent(id, pubKey, createdAt, tags, content, sig) - EmojiPackSelectionEvent.kind -> EmojiPackSelectionEvent(id, pubKey, createdAt, tags, content, sig) - - FileHeaderEvent.kind -> FileHeaderEvent(id, pubKey, createdAt, tags, content, sig) - FileStorageEvent.kind -> FileStorageEvent(id, pubKey, createdAt, tags, content, sig) - FileStorageHeaderEvent.kind -> FileStorageHeaderEvent(id, pubKey, createdAt, tags, content, sig) - GenericRepostEvent.kind -> GenericRepostEvent(id, pubKey, createdAt, tags, content, sig) - HighlightEvent.kind -> HighlightEvent(id, pubKey, createdAt, tags, content, sig) - LiveActivitiesEvent.kind -> LiveActivitiesEvent(id, pubKey, createdAt, tags, content, sig) - LiveActivitiesChatMessageEvent.kind -> LiveActivitiesChatMessageEvent(id, pubKey, createdAt, tags, content, sig) - LnZapEvent.kind -> LnZapEvent(id, pubKey, createdAt, tags, content, sig) - LnZapPaymentRequestEvent.kind -> LnZapPaymentRequestEvent(id, pubKey, createdAt, tags, content, sig) - LnZapPaymentResponseEvent.kind -> LnZapPaymentResponseEvent(id, pubKey, createdAt, tags, content, sig) - LnZapRequestEvent.kind -> LnZapRequestEvent(id, pubKey, createdAt, tags, content, sig) - LongTextNoteEvent.kind -> LongTextNoteEvent(id, pubKey, createdAt, tags, content, sig) - MetadataEvent.kind -> MetadataEvent(id, pubKey, createdAt, tags, content, sig) - NNSEvent.kind -> NNSEvent(id, pubKey, createdAt, tags, content, sig) - PeopleListEvent.kind -> PeopleListEvent(id, pubKey, createdAt, tags, content, sig) - PinListEvent.kind -> PinListEvent(id, pubKey, createdAt, tags, content, sig) - PollNoteEvent.kind -> PollNoteEvent(id, pubKey, createdAt, tags, content, sig) - PrivateDmEvent.kind -> PrivateDmEvent(id, pubKey, createdAt, tags, content, sig) - ReactionEvent.kind -> ReactionEvent(id, pubKey, createdAt, tags, content, sig) - RecommendRelayEvent.kind -> RecommendRelayEvent(id, pubKey, createdAt, tags, content, sig, lenient) - RelaySetEvent.kind -> RelaySetEvent(id, pubKey, createdAt, tags, content, sig) - ReportEvent.kind -> ReportEvent(id, pubKey, createdAt, tags, content, sig) - RepostEvent.kind -> RepostEvent(id, pubKey, createdAt, tags, content, sig) - TextNoteEvent.kind -> TextNoteEvent(id, pubKey, createdAt, tags, content, sig) - else -> this + fun Event.getRefinedEvent(lenient: Boolean = false): Event { + return EventFactory.create(id, pubKey, createdAt, kind, tags, content, sig, lenient) } fun generateId(pubKey: HexKey, createdAt: Long, kind: Int, tags: List>, content: String): ByteArray { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/EventFactory.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/EventFactory.kt new file mode 100644 index 000000000..7fb0bbd36 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/EventFactory.kt @@ -0,0 +1,62 @@ +package com.vitorpamplona.amethyst.service.model + +class EventFactory { + companion object { + fun create( + id: String, + pubKey: String, + createdAt: Long, + kind: Int, + tags: List>, + content: String, + sig: String, + lenient: Boolean + ) = when (kind) { + AppDefinitionEvent.kind -> AppDefinitionEvent(id, pubKey, createdAt, tags, content, sig) + AppRecommendationEvent.kind -> AppRecommendationEvent(id, pubKey, createdAt, tags, content, sig) + AudioTrackEvent.kind -> AudioTrackEvent(id, pubKey, createdAt, tags, content, sig) + BadgeAwardEvent.kind -> BadgeAwardEvent(id, pubKey, createdAt, tags, content, sig) + BadgeDefinitionEvent.kind -> BadgeDefinitionEvent(id, pubKey, createdAt, tags, content, sig) + BadgeProfilesEvent.kind -> BadgeProfilesEvent(id, pubKey, createdAt, tags, content, sig) + BookmarkListEvent.kind -> BookmarkListEvent(id, pubKey, createdAt, tags, content, sig) + ChannelCreateEvent.kind -> ChannelCreateEvent(id, pubKey, createdAt, tags, content, sig) + ChannelHideMessageEvent.kind -> ChannelHideMessageEvent(id, pubKey, createdAt, tags, content, sig) + ChannelMessageEvent.kind -> ChannelMessageEvent(id, pubKey, createdAt, tags, content, sig) + ChannelMetadataEvent.kind -> ChannelMetadataEvent(id, pubKey, createdAt, tags, content, sig) + ChannelMuteUserEvent.kind -> ChannelMuteUserEvent(id, pubKey, createdAt, tags, content, sig) + ClassifiedsEvent.kind -> ClassifiedsEvent(id, pubKey, createdAt, tags, content, sig) + CommunityDefinitionEvent.kind -> CommunityDefinitionEvent(id, pubKey, createdAt, tags, content, sig) + CommunityPostApprovalEvent.kind -> CommunityPostApprovalEvent(id, pubKey, createdAt, tags, content, sig) + ContactListEvent.kind -> ContactListEvent(id, pubKey, createdAt, tags, content, sig) + DeletionEvent.kind -> DeletionEvent(id, pubKey, createdAt, tags, content, sig) + EmojiPackEvent.kind -> EmojiPackEvent(id, pubKey, createdAt, tags, content, sig) + EmojiPackSelectionEvent.kind -> EmojiPackSelectionEvent(id, pubKey, createdAt, tags, content, sig) + + FileHeaderEvent.kind -> FileHeaderEvent(id, pubKey, createdAt, tags, content, sig) + FileStorageEvent.kind -> FileStorageEvent(id, pubKey, createdAt, tags, content, sig) + FileStorageHeaderEvent.kind -> FileStorageHeaderEvent(id, pubKey, createdAt, tags, content, sig) + GenericRepostEvent.kind -> GenericRepostEvent(id, pubKey, createdAt, tags, content, sig) + HighlightEvent.kind -> HighlightEvent(id, pubKey, createdAt, tags, content, sig) + LiveActivitiesEvent.kind -> LiveActivitiesEvent(id, pubKey, createdAt, tags, content, sig) + LiveActivitiesChatMessageEvent.kind -> LiveActivitiesChatMessageEvent(id, pubKey, createdAt, tags, content, sig) + LnZapEvent.kind -> LnZapEvent(id, pubKey, createdAt, tags, content, sig) + LnZapPaymentRequestEvent.kind -> LnZapPaymentRequestEvent(id, pubKey, createdAt, tags, content, sig) + LnZapPaymentResponseEvent.kind -> LnZapPaymentResponseEvent(id, pubKey, createdAt, tags, content, sig) + LnZapRequestEvent.kind -> LnZapRequestEvent(id, pubKey, createdAt, tags, content, sig) + LongTextNoteEvent.kind -> LongTextNoteEvent(id, pubKey, createdAt, tags, content, sig) + MetadataEvent.kind -> MetadataEvent(id, pubKey, createdAt, tags, content, sig) + NNSEvent.kind -> NNSEvent(id, pubKey, createdAt, tags, content, sig) + PeopleListEvent.kind -> PeopleListEvent(id, pubKey, createdAt, tags, content, sig) + PinListEvent.kind -> PinListEvent(id, pubKey, createdAt, tags, content, sig) + PollNoteEvent.kind -> PollNoteEvent(id, pubKey, createdAt, tags, content, sig) + PrivateDmEvent.kind -> PrivateDmEvent(id, pubKey, createdAt, tags, content, sig) + ReactionEvent.kind -> ReactionEvent(id, pubKey, createdAt, tags, content, sig) + RecommendRelayEvent.kind -> RecommendRelayEvent(id, pubKey, createdAt, tags, content, sig, lenient) + RelaySetEvent.kind -> RelaySetEvent(id, pubKey, createdAt, tags, content, sig) + ReportEvent.kind -> ReportEvent(id, pubKey, createdAt, tags, content, sig) + RepostEvent.kind -> RepostEvent(id, pubKey, createdAt, tags, content, sig) + TextNoteEvent.kind -> TextNoteEvent(id, pubKey, createdAt, tags, content, sig) + else -> Event(id, pubKey, createdAt, kind, tags, content, sig) + } + } +}