From b92a2ca18b50d479e22ad68400b3c6f33e2dc477 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Mon, 18 Jul 2022 22:26:32 +0530 Subject: Add KeyList composable --- .../kotlin/app/passwordstore/ui/pgp/PGPKeyList.kt | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 ui-compose/src/main/kotlin/app/passwordstore/ui/pgp/PGPKeyList.kt (limited to 'ui-compose/src/main') diff --git a/ui-compose/src/main/kotlin/app/passwordstore/ui/pgp/PGPKeyList.kt b/ui-compose/src/main/kotlin/app/passwordstore/ui/pgp/PGPKeyList.kt new file mode 100644 index 00000000..ccc6fa01 --- /dev/null +++ b/ui-compose/src/main/kotlin/app/passwordstore/ui/pgp/PGPKeyList.kt @@ -0,0 +1,39 @@ +package app.passwordstore.ui.pgp + +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import app.passwordstore.crypto.GpgIdentifier + +@Composable +public fun KeyList( + identifiers: List, + onItemClick: (identifier: GpgIdentifier) -> Unit, + modifier: Modifier = Modifier, +) { + LazyColumn(modifier = modifier) { + items(identifiers) { identifier -> + KeyItem(identifier = identifier, modifier = Modifier.clickable { onItemClick(identifier) }) + } + } +} + +@Composable +private fun KeyItem( + identifier: GpgIdentifier, + modifier: Modifier = Modifier, +) { + val label = + when (identifier) { + is GpgIdentifier.KeyId -> identifier.id.toString() + is GpgIdentifier.UserId -> identifier.email + } + Box(modifier = modifier.padding(16.dp).fillMaxWidth()) { Text(text = label) } +} -- cgit v1.2.3