Pass through the marmot repository

This commit is contained in:
Kgothatso Ngako
2026-06-19 11:03:38 +03:00
parent 3b9be3a9dd
commit 94723eca6a
5 changed files with 305 additions and 132 deletions

View File

@@ -8,9 +8,11 @@ import com.vitorpamplona.quartz.marmot.mls.codec.TlsWriter
import com.vitorpamplona.quartz.marmot.mls.messages.KeyPackageBundle
import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip49PrivKeyEnc.Nip49
import kotlinx.coroutines.CoroutineScope
class DatabaseMarmotRepository(
val database: TorchDatabase
val database: TorchDatabase,
val scope: CoroutineScope
): MarmotRepository {
override suspend fun saveMarmotKeyPackageBundle(
publicKey: HexKey,

View File

@@ -12,7 +12,7 @@ interface MarmotRepository {
)
companion object {
private val NO_OP_MARMOT_KEY_PACKAGE_BUNDLE = object: MarmotRepository {
val NO_OP_MARMOT_KEY_PACKAGE_BUNDLE = object: MarmotRepository {
override suspend fun saveMarmotKeyPackageBundle(
publicKey: HexKey,
keyPackageBundle: KeyPackageBundle,

View File

@@ -35,20 +35,23 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.lifecycle.viewmodel.compose.viewModel
import at.torch.compose.repository.MarmotRepository
import at.torch.compose.ui.view.state.CreateProfileUIState
@OptIn(ExperimentalMaterial3ExpressiveApi::class)
@Composable
fun CreateProfileScreen(
initialCreateProfileUIState: at.torch.compose.ui.view.state.CreateProfileUIState = _root_ide_package_.at.torch.compose.ui.view.state.CreateProfileUIState.Declaration,
initialCreateProfileUIState: CreateProfileUIState = CreateProfileUIState.Declaration,
onNavigateToEndThis: () -> Unit,
nostrRepository: at.torch.compose.repository.NostrRepository,
marmotRepository: MarmotRepository,
writeSeed: (List<String>) -> Unit
) {
val createProfileViewModel: CreateProfileViewModel = viewModel (
factory = CreateProfileViewModel.factory(
initialCreateProfileUIState,
nostrRepository
nostrRepository,
marmotRepository = marmotRepository
)
)
Scaffold { innerPadding ->
@@ -396,7 +399,8 @@ fun CreateAccountScreenPreview() {
// ),
onNavigateToEndThis = {},
writeSeed = {},
nostrRepository = _root_ide_package_.at.torch.compose.repository.NostrRepository.Companion.NO_OP_NOSTR_REPOSITORY
nostrRepository = at.torch.compose.repository.NostrRepository.NO_OP_NOSTR_REPOSITORY,
marmotRepository = MarmotRepository.NO_OP_MARMOT_KEY_PACKAGE_BUNDLE
)
}
}

View File

@@ -14,6 +14,7 @@ import androidx.compose.ui.graphics.Color
import androidx.lifecycle.compose.LocalLifecycleOwner
import androidx.lifecycle.viewmodel.compose.viewModel
import androidx.navigation.compose.composable
import at.torch.compose.database.repository.DatabaseMarmotRepository
import at.torch.compose.ui.composable.ChatRoomCreationScreen
import at.torch.compose.ui.composable.ChatRoomDetailScreen
import at.torch.compose.ui.composable.HomeScreen
@@ -59,6 +60,11 @@ fun TorchNavHost(
applicationIOScope
)
val databaseMarmotRepository = DatabaseMarmotRepository(
database = auxDatabaseManager.auxDatabase,
applicationIOScope
)
val searchRepository =
_root_ide_package_.at.torch.compose.database.repository.DatabaseSearchRepository(
database = auxDatabaseManager.auxDatabase
@@ -275,6 +281,7 @@ fun TorchNavHost(
}
},
nostrRepository = databaseNostrRepository,
marmotRepository = databaseMarmotRepository,
writeSeed = { words ->
sovereignWalletViewModel.writeSeed(
words,