diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/ChannelCreateEvent.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/ChannelCreateEvent.kt index 7001a1174..c63798393 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/model/ChannelCreateEvent.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/ChannelCreateEvent.kt @@ -1,5 +1,6 @@ package com.vitorpamplona.amethyst.service.model +import android.util.Log import java.util.Date import nostr.postr.Utils import nostr.postr.events.Event @@ -16,10 +17,11 @@ class ChannelCreateEvent ( @Transient val channelInfo: ChannelData init { - try { - channelInfo = MetadataEvent.gson.fromJson(content, ChannelData::class.java) + channelInfo = try { + MetadataEvent.gson.fromJson(content, ChannelData::class.java) } catch (e: Exception) { - throw Error("can't parse $content", e) + Log.e("ChannelMetadataEvent", "Can't parse channel info $content", e) + ChannelData(null, null, null) } } @@ -27,10 +29,15 @@ class ChannelCreateEvent ( const val kind = 40 fun create(channelInfo: ChannelData?, privateKey: ByteArray, createdAt: Long = Date().time / 1000): ChannelCreateEvent { - val content = if (channelInfo != null) - gson.toJson(channelInfo) - else + val content = try { + if (channelInfo != null) + gson.toJson(channelInfo) + else + "" + } catch (t: Throwable) { + Log.e("ChannelCreateEvent", "Couldn't parse channel information", t) "" + } val pubKey = Utils.pubkeyCreate(privateKey) val tags = emptyList>() diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/ChannelMetadataEvent.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/ChannelMetadataEvent.kt index 372b1684a..49c44fc12 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/model/ChannelMetadataEvent.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/ChannelMetadataEvent.kt @@ -1,5 +1,6 @@ package com.vitorpamplona.amethyst.service.model +import android.util.Log import java.util.Date import nostr.postr.ContactMetaData import nostr.postr.Utils @@ -20,21 +21,24 @@ class ChannelMetadataEvent ( init { channel = tags.firstOrNull { it.firstOrNull() == "e" }?.getOrNull(1) - try { - channelInfo = MetadataEvent.gson.fromJson(content, ChannelCreateEvent.ChannelData::class.java) - } catch (e: Exception) { - throw Error("can't parse $content", e) - } + channelInfo = + try { + MetadataEvent.gson.fromJson(content, ChannelCreateEvent.ChannelData::class.java) + } catch (e: Exception) { + Log.e("ChannelMetadataEvent", "Can't parse channel info $content", e) + ChannelCreateEvent.ChannelData(null, null, null) + } } companion object { const val kind = 41 fun create(newChannelInfo: ChannelCreateEvent.ChannelData?, originalChannelIdHex: String, privateKey: ByteArray, createdAt: Long = Date().time / 1000): ChannelMetadataEvent { - val content = if (newChannelInfo != null) - gson.toJson(newChannelInfo) - else - "" + val content = + if (newChannelInfo != null) + gson.toJson(newChannelInfo) + else + "" val pubKey = Utils.pubkeyCreate(privateKey) val tags = listOf( listOf("e", originalChannelIdHex, "", "root") )