From c1e76d401d5c1ce0f76afddbc670b08cd5f22f32 Mon Sep 17 00:00:00 2001 From: greenart7c3 Date: Mon, 6 May 2024 14:12:24 -0300 Subject: [PATCH] Improve edit permissions screen --- .../service/EventNotificationConsumer.kt | 12 ++++ .../nostrsigner/ui/EditPermission.kt | 57 +++++++++---------- app/src/main/res/values/strings.xml | 2 + 3 files changed, 42 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/service/EventNotificationConsumer.kt b/app/src/main/java/com/greenart7c3/nostrsigner/service/EventNotificationConsumer.kt index 54d94bfa..62ceb34e 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/service/EventNotificationConsumer.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/service/EventNotificationConsumer.kt @@ -31,6 +31,7 @@ import com.greenart7c3.nostrsigner.BuildConfig import com.greenart7c3.nostrsigner.LocalPreferences import com.greenart7c3.nostrsigner.NostrSigner import com.greenart7c3.nostrsigner.database.ApplicationWithPermissions +import com.greenart7c3.nostrsigner.database.HistoryEntity import com.greenart7c3.nostrsigner.database.NotificationEntity import com.greenart7c3.nostrsigner.models.Account import com.greenart7c3.nostrsigner.models.BunkerRequest @@ -149,6 +150,17 @@ class EventNotificationConsumer(private val applicationContext: Context) { val permission = database.applicationDao().getByKey(bunkerRequest.localKey) if (permission != null && permission.application.isConnected && type == SignerType.CONNECT) { + database.applicationDao() + .addHistory( + HistoryEntity( + 0, + permission.application.key, + type.toString().toLowerCase(Locale.current), + amberEvent?.kind, + System.currentTimeMillis(), + true, + ), + ) IntentUtils.sendBunkerResponse( acc, bunkerRequest.localKey, diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/ui/EditPermission.kt b/app/src/main/java/com/greenart7c3/nostrsigner/ui/EditPermission.kt index 35bb4124..ecf72d42 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/ui/EditPermission.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/ui/EditPermission.kt @@ -83,14 +83,12 @@ import java.time.format.DateTimeFormatter import java.time.format.FormatStyle fun convertLongToDateTime(longValue: Long): String { - // Convert the Long timestamp to LocalDateTime val dateTime = LocalDateTime.ofInstant( Instant.ofEpochMilli(longValue), ZoneId.systemDefault(), ) - // Format the LocalDateTime with local format val formatter = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.SHORT, @@ -102,7 +100,6 @@ fun convertLongToDateTime(longValue: Long): String { @Composable fun ActivityDialog( - account: Account, database: AppDatabase, key: String, onClose: () -> Unit, @@ -150,7 +147,7 @@ fun ActivityDialog( } LazyColumn( Modifier - .fillMaxHeight(0.9f) + .fillMaxHeight() .fillMaxWidth(), ) { items(activities.size) { @@ -169,7 +166,7 @@ fun ActivityDialog( .padding(horizontal = 16.dp, vertical = 8.dp), ) { Text( - permission.toString(), + if (permission.type == "connect") "Connect" else permission.toString(), fontWeight = FontWeight.Bold, fontSize = 18.sp, maxLines = 1, @@ -185,7 +182,7 @@ fun ActivityDialog( IconButton(onClick = { }) { Icon( if (activity.accepted) Icons.Default.Check else Icons.Default.Close, - contentDescription = null, + contentDescription = if (activity.accepted) stringResource(R.string.accepted) else stringResource(R.string.rejected), tint = if (activity.accepted) Color.Green else Color.Red, ) } @@ -427,7 +424,6 @@ fun EditPermission( if (showActivityDialog) { ActivityDialog( - account = account, database = database, key = selectedPackage, onClose = { @@ -531,33 +527,36 @@ fun EditPermission( }, ) - if (applicationData.secret.isNotEmpty()) { - Row( - Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.Center, - ) { - Button( - onClick = { - editRelaysDialog = true - }, - Modifier.padding(6.dp), - ) { - Text(stringResource(R.string.relays)) - } - } - } - Row( Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.Center, ) { - Button( - onClick = { - showActivityDialog = true - }, - Modifier.padding(6.dp), + if (applicationData.secret.isNotEmpty()) { + Row( + horizontalArrangement = Arrangement.Center, + ) { + Button( + onClick = { + editRelaysDialog = true + }, + Modifier.padding(6.dp), + ) { + Text(stringResource(R.string.relays)) + } + } + } + + Row( + horizontalArrangement = Arrangement.Center, ) { - Text(stringResource(R.string.activity)) + Button( + onClick = { + showActivityDialog = true + }, + Modifier.padding(6.dp), + ) { + Text(stringResource(R.string.activity)) + } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index aaf1b93e..3b19443e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -120,4 +120,6 @@ Notification Type Select the type of notification you want to receive Activity + Accepted + Rejected