aboutsummaryrefslogtreecommitdiff
path: root/ui-compose/src
diff options
context:
space:
mode:
Diffstat (limited to 'ui-compose/src')
-rw-r--r--ui-compose/src/main/kotlin/app/passwordstore/ui/pgp/PGPKeyList.kt39
1 files changed, 39 insertions, 0 deletions
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<GpgIdentifier>,
+ 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) }
+}