Rename TorchDatabase to MantraDatabase

This commit is contained in:
Kgothatso Ngako
2026-07-15 01:19:53 +02:00
parent 9abdf42921
commit 6cdddee424
18 changed files with 3516 additions and 43 deletions

View File

@@ -3,20 +3,20 @@ package press.mantra.compose.database.builder
import androidx.room3.Room
import androidx.room3.RoomDatabase
import press.mantra.compose.PlatformContext
import press.mantra.compose.database.TorchDatabase
import press.mantra.compose.database.MantraDatabase
actual object PlatformDatabaseBuilder {
actual fun getDatabaseBuilder(platformContext: PlatformContext): RoomDatabase.Builder<TorchDatabase> {
actual fun getDatabaseBuilder(platformContext: PlatformContext): RoomDatabase.Builder<MantraDatabase> {
val appContext = platformContext.applicationContext
val dbFile = appContext.getDatabasePath("aux.db")
return Room.databaseBuilder<TorchDatabase>(
return Room.databaseBuilder<MantraDatabase>(
context = appContext,
name = dbFile.absolutePath
)
}
actual fun getInMemoryDatabaseBuilder(platform: PlatformContext): RoomDatabase.Builder<TorchDatabase> {
actual fun getInMemoryDatabaseBuilder(platform: PlatformContext): RoomDatabase.Builder<MantraDatabase> {
return Room.inMemoryDatabaseBuilder(
context = platform.applicationContext
)

View File

@@ -5,7 +5,7 @@ import androidx.room3.RoomDatabase
import androidx.room3.TypeConverters
import androidx.room3.immediateTransaction
import androidx.room3.useWriterConnection
import press.mantra.compose.database.converters.TorchConverters
import press.mantra.compose.database.converters.MantraConverters
import press.mantra.compose.database.dao.BroadcastNostrEventReceiptDao
import press.mantra.compose.database.dao.BroadcastNostrEventRequestDao
import press.mantra.compose.database.dao.ChatMessageBroadcastNostrEventReceiptRelationDao
@@ -123,8 +123,8 @@ val GENESIS_AT = Instant.fromEpochMilliseconds(1231006505000L)
],
version = 1
)
@TypeConverters(TorchConverters::class)
abstract class TorchDatabase: RoomDatabase() {
@TypeConverters(MantraConverters::class)
abstract class MantraDatabase: RoomDatabase() {
abstract fun broadcastNostrEventReceiptDao(): BroadcastNostrEventReceiptDao
abstract fun broadcastNostrEventRequestDao(): BroadcastNostrEventRequestDao

View File

@@ -3,7 +3,7 @@ package press.mantra.compose.database
import androidx.room3.RoomDatabaseConstructor
@Suppress("KotlinNoActualForExpect", "NO_ACTUAL_FOR_EXPECT")
expect object TorchDatabaseConstructor: RoomDatabaseConstructor<TorchDatabase> {
expect object MantraDatabaseConstructor: RoomDatabaseConstructor<MantraDatabase> {
override fun initialize(): TorchDatabase
override fun initialize(): MantraDatabase
}

View File

@@ -6,14 +6,14 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.IO
expect object PlatformDatabaseBuilder {
fun getDatabaseBuilder(platformContext: press.mantra.compose.PlatformContext): RoomDatabase.Builder<press.mantra.compose.database.TorchDatabase>
fun getDatabaseBuilder(platformContext: press.mantra.compose.PlatformContext): RoomDatabase.Builder<press.mantra.compose.database.MantraDatabase>
fun getInMemoryDatabaseBuilder(platform: press.mantra.compose.PlatformContext): RoomDatabase.Builder<press.mantra.compose.database.TorchDatabase>
fun getInMemoryDatabaseBuilder(platform: press.mantra.compose.PlatformContext): RoomDatabase.Builder<press.mantra.compose.database.MantraDatabase>
}
fun getRoomDatabase(
builder: RoomDatabase.Builder<press.mantra.compose.database.TorchDatabase>
): press.mantra.compose.database.TorchDatabase {
builder: RoomDatabase.Builder<press.mantra.compose.database.MantraDatabase>
): press.mantra.compose.database.MantraDatabase {
return builder
.setDriver(BundledSQLiteDriver())
.setQueryCoroutineContext(Dispatchers.IO)

View File

@@ -6,8 +6,8 @@ import co.touchlab.kermit.Logger
import kotlinx.serialization.json.Json
import kotlin.time.Instant
class TorchConverters {
val logger = Logger.withTag("TorchConverters")
class MantraConverters {
val logger = Logger.withTag("MantraConverters")
@TypeConverter
fun fromTimestamp(value: Long?): Instant? {

View File

@@ -2,7 +2,7 @@ package press.mantra.compose.database.dao
import androidx.room3.Dao
import androidx.room3.Transaction
import press.mantra.compose.database.TorchDatabase
import press.mantra.compose.database.MantraDatabase
import press.mantra.compose.database.model.BroadcastNostrEventRequest
import press.mantra.compose.database.model.ChatMessage
import press.mantra.compose.database.model.ChatMessageBroadcastNostrEventRequestRelation
@@ -50,7 +50,7 @@ import kotlin.time.Instant
@Dao
abstract class MarmotOutboundDao(
private val database: TorchDatabase
private val database: MantraDatabase
) {
val logger = Logger.withTag(TAG)

View File

@@ -56,7 +56,7 @@ import kotlin.time.Instant
@Dao
abstract class NostrDao(
private val database: press.mantra.compose.database.TorchDatabase,
private val database: press.mantra.compose.database.MantraDatabase,
) {
val logger = Logger.withTag("NostrDao")

View File

@@ -25,7 +25,7 @@ import kotlin.time.Instant
@Dao
abstract class NostrNip17Dao(
private val database: press.mantra.compose.database.TorchDatabase
private val database: press.mantra.compose.database.MantraDatabase
) {
val logger = Logger.withTag(TAG)

View File

@@ -3,7 +3,7 @@ package press.mantra.compose.database.model
import androidx.room3.Entity
import androidx.room3.ForeignKey
import androidx.room3.PrimaryKey
import press.mantra.compose.database.TorchDatabase
import press.mantra.compose.database.MantraDatabase
import press.mantra.compose.database.model.traits.LocalStoreEntity
import press.mantra.compose.database.model.traits.SoftDeletableEntity
import press.mantra.compose.database.model.traits.TimestampedEntity
@@ -74,7 +74,7 @@ data class ChatMessage(
companion object {
suspend fun fromGroupEventResult(
database: TorchDatabase,
database: MantraDatabase,
activeKeyPair: KeyPair,
groupEvent: GroupEvent,
groupEventResult: GroupEventResult

View File

@@ -1,7 +1,7 @@
package press.mantra.compose.database.repository
import press.mantra.compose.database.GENESIS_AT
import press.mantra.compose.database.TorchDatabase
import press.mantra.compose.database.MantraDatabase
import press.mantra.compose.database.model.ChatMessage
import press.mantra.compose.database.model.ChatRoom
import press.mantra.compose.database.model.GiftWrapPayload
@@ -35,7 +35,7 @@ import kotlin.time.Clock
import kotlin.time.Instant
class DatabaseChatRepository(
private val database: TorchDatabase,
private val database: MantraDatabase,
private val scope: CoroutineScope
): press.mantra.compose.repository.ChatRepository {
val logger = Logger.withTag(TAG)

View File

@@ -1,6 +1,6 @@
package press.mantra.compose.database.repository
import press.mantra.compose.database.TorchDatabase
import press.mantra.compose.database.MantraDatabase
import press.mantra.compose.database.model.MarmotInnerEvent
import press.mantra.compose.database.model.MarmotKeyPackageBundle
import press.mantra.compose.database.model.UnsignedNostrEvent
@@ -36,7 +36,7 @@ import kotlin.time.Instant
* Based on MlsGroupManager in quarts...
*/
class DatabaseMarmotRepository(
val database: TorchDatabase,
val database: MantraDatabase,
val scope: CoroutineScope
): MarmotRepository {
private val logger = Logger.withTag(TAG)

View File

@@ -51,7 +51,7 @@ import kotlin.time.Clock
import kotlin.time.Instant
class DatabaseNostrRepository(
private val database: press.mantra.compose.database.TorchDatabase,
private val database: press.mantra.compose.database.MantraDatabase,
private val scope: CoroutineScope
): press.mantra.compose.repository.NostrRepository, press.mantra.compose.repository.RelayRepository {
companion object {

View File

@@ -1,5 +1,5 @@
package press.mantra.compose.database.repository
class DatabasePostRepository(
private val database: press.mantra.compose.database.TorchDatabase
private val database: press.mantra.compose.database.MantraDatabase
): press.mantra.compose.repository.PostRepository

View File

@@ -1,7 +1,7 @@
package press.mantra.compose.database.repository
class DatabaseSearchRepository(
private val database: press.mantra.compose.database.TorchDatabase
private val database: press.mantra.compose.database.MantraDatabase
): press.mantra.compose.repository.SearchRepository {
override suspend fun submitSearch(synchronizeNostrEventRequests: List<press.mantra.compose.database.model.SynchronizeNostrEventRequest>) {

View File

@@ -1,6 +1,6 @@
package press.mantra.compose.managers
import press.mantra.compose.database.TorchDatabase
import press.mantra.compose.database.MantraDatabase
import press.mantra.compose.database.model.Participant
import press.mantra.compose.database.model.intermdiate.LocalChatRoom
import press.mantra.compose.exceptions.MarmotMissingChatGroupException
@@ -53,7 +53,7 @@ object MarmotInboundManager {
private val commitTracker = CommitOrdering.EpochCommitTracker()
suspend fun processGroupMembershipChanges(
database: TorchDatabase,
database: MantraDatabase,
localChatRoom: LocalChatRoom,
mlsGroup: MlsGroup,
) {
@@ -113,7 +113,7 @@ object MarmotInboundManager {
}
suspend fun processGroupEvent(
database: TorchDatabase,
database: MantraDatabase,
activeKeyPair: KeyPair,
localChatRoom: LocalChatRoom,
mlsGroup: MlsGroup,
@@ -173,7 +173,7 @@ object MarmotInboundManager {
suspend fun processPrivateMessage(
database: TorchDatabase,
database: MantraDatabase,
mlsGroup: MlsGroup,
mlsMessage: MlsMessage,
groupEvent: GroupEvent
@@ -236,7 +236,7 @@ object MarmotInboundManager {
}
private suspend fun decryptMessageBytes(
database: TorchDatabase,
database: MantraDatabase,
mlsGroup: MlsGroup,
messageBytes: ByteArray,
): DecryptedMessage {
@@ -282,7 +282,7 @@ object MarmotInboundManager {
}
public suspend fun processPublicMessage(
database: TorchDatabase,
database: MantraDatabase,
mlsGroup: MlsGroup,
mlsMessage: MlsMessage,
groupEvent: GroupEvent
@@ -326,7 +326,7 @@ object MarmotInboundManager {
}
private suspend fun handleCommitEvent(
database: TorchDatabase,
database: MantraDatabase,
mlsGroup: MlsGroup,
groupEvent: GroupEvent
): GroupEventResult {
@@ -352,7 +352,7 @@ object MarmotInboundManager {
}
private suspend fun applyCommit(
database: TorchDatabase,
database: MantraDatabase,
mlsGroup: MlsGroup,
commitEvent: GroupEvent,
): GroupEventResult =
@@ -480,7 +480,7 @@ object MarmotInboundManager {
* @param confirmationTag optional confirmation tag for verification
*/
suspend fun processCommit(
database: TorchDatabase,
database: MantraDatabase,
mlsGroup: MlsGroup,
commitBytes: ByteArray,
senderLeafIndex: Int,
@@ -551,7 +551,7 @@ object MarmotInboundManager {
}
private suspend fun persistGroup(
database: TorchDatabase,
database: MantraDatabase,
mlsGroup: MlsGroup
) {
val nostrGroupId = mlsGroup.currentMarmotData()?.nostrGroupId ?: mlsGroup.groupId.toHex()

View File

@@ -36,7 +36,7 @@ fun LandingScreen(
horizontalAlignment = Alignment.CenterHorizontally
) {
Text(
text = "Torch",
text = "Mantra",
style = MaterialTheme.typography.headlineLarge
)

View File

@@ -3,16 +3,16 @@ package press.mantra.compose.database.builder
import androidx.room3.Room
import androidx.room3.RoomDatabase
import press.mantra.compose.PlatformContext
import press.mantra.compose.database.TorchDatabase
import press.mantra.compose.database.MantraDatabase
import kotlinx.cinterop.ExperimentalForeignApi
import platform.Foundation.NSDocumentDirectory
import platform.Foundation.NSFileManager
import platform.Foundation.NSUserDomainMask
actual object PlatformDatabaseBuilder {
actual fun getDatabaseBuilder(platformContext: PlatformContext): RoomDatabase.Builder<TorchDatabase> {
actual fun getDatabaseBuilder(platformContext: PlatformContext): RoomDatabase.Builder<MantraDatabase> {
val dbFilePath = documentDirectory() + "/aux.db"
return Room.databaseBuilder<TorchDatabase>(
return Room.databaseBuilder<MantraDatabase>(
name = dbFilePath,
)
}
@@ -29,7 +29,7 @@ actual object PlatformDatabaseBuilder {
return requireNotNull(documentDirectory?.path)
}
actual fun getInMemoryDatabaseBuilder(platform: PlatformContext): RoomDatabase.Builder<TorchDatabase> {
actual fun getInMemoryDatabaseBuilder(platform: PlatformContext): RoomDatabase.Builder<MantraDatabase> {
return Room.inMemoryDatabaseBuilder()
}