Bug fix for the chat creation

This commit is contained in:
Kgothatso Ngako
2026-07-06 23:49:13 +02:00
parent 2ed47d23b0
commit 534f28986d
3 changed files with 43 additions and 8 deletions

View File

@@ -263,16 +263,19 @@ abstract class MarmotOutboundDao(
content = welcomeEvent.content
)
GiftWrapPayload(
id = welcomeEventId,
publicKey = userPublicKey,
chatRoomId = nostrGroupId,
kind = welcomeEvent.kind,
tags = welcomeEvent.tags,
content = welcomeEvent.content,
createdAt = Instant.fromEpochSeconds(welcomeEvent.createdAt)
database.giftWrapPayloadDao().upsert(
GiftWrapPayload(
id = welcomeEventId,
publicKey = userPublicKey,
chatRoomId = nostrGroupId,
kind = welcomeEvent.kind,
tags = welcomeEvent.tags,
content = welcomeEvent.content,
createdAt = Instant.fromEpochSeconds(welcomeEvent.createdAt)
)
)
// Save chatMessage for the invite...
database.chatMessageDao().upsert(
ChatMessage(

View File

@@ -1,5 +1,6 @@
package at.torch.compose.database.dao
import androidx.compose.runtime.key
import androidx.room3.Dao
import androidx.room3.Transaction
import at.torch.compose.database.GENESIS_AT
@@ -8,6 +9,7 @@ import at.torch.compose.database.model.ChatMessage
import at.torch.compose.database.model.ChatRoom
import at.torch.compose.database.model.Connection
import at.torch.compose.database.model.MarmotGroupEvent
import at.torch.compose.database.model.MarmotKeyPackage
import at.torch.compose.database.model.Mention
import at.torch.compose.database.model.NegentropySynchronizeRequest
import at.torch.compose.database.model.NostrEvent
@@ -331,6 +333,19 @@ abstract class NostrDao(
}
// MLSGroupEvent handling...
nostrEvent.toKeyPackageEvent()?.let { keyPackageEvent ->
logger.d("KeyPackageEvent: $keyPackageEvent")
database.marmotKeyPackageDao().upsert(
MarmotKeyPackage(
id = keyPackageEvent.id,
publicKey = keyPackageEvent.pubKey,
tlsEncodedMarmotKeyPackage = Base64.decode(
source = keyPackageEvent.keyPackageBase64()
),
createdAt = Instant.fromEpochSeconds(keyPackageEvent.createdAt)
)
)
}
nostrEvent.toGroupEvent(
userPublicKey = activeKeyPair.pubKey.toHex()
)?.let { groupEvent ->

View File

@@ -5,6 +5,7 @@ import androidx.room3.Ignore
import androidx.room3.Index
import androidx.room3.PrimaryKey
import co.touchlab.kermit.Logger
import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageEvent
import com.vitorpamplona.quartz.marmot.mip03GroupMessages.GroupEvent
import com.vitorpamplona.quartz.nip01Core.core.Event
import com.vitorpamplona.quartz.nip01Core.core.HexKey
@@ -249,6 +250,22 @@ data class NostrEvent(
return null
}
fun toKeyPackageEvent(): KeyPackageEvent? = try {
if (kind == KeyPackageEvent.KIND) {
return KeyPackageEvent(
id = id,
pubKey = pubKey,
createdAt = createdAt.epochSeconds,
tags = tags,
content = content,
sig = sig
)
}
return null
} catch (e: Throwable) {
logger.e("Coulldn't cast to KeyPackageEvent: ", e)
return null
}
fun toReaction(): Reaction? = try {
if (kind == ReactionEvent.KIND) {
val reactionEvent = EventFactory.create<ReactionEvent>(