From 0dc160a9d0eb64ec09ed577f6c2cef9b911b8059 Mon Sep 17 00:00:00 2001 From: greenart7c3 Date: Wed, 20 Sep 2023 13:36:55 -0300 Subject: [PATCH] better description of the permissions --- .../nostrsigner/ui/PermissionsScreen.kt | 117 +++++++++++------- 1 file changed, 69 insertions(+), 48 deletions(-) diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/ui/PermissionsScreen.kt b/app/src/main/java/com/greenart7c3/nostrsigner/ui/PermissionsScreen.kt index 0a8f5498..87401de8 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/ui/PermissionsScreen.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/ui/PermissionsScreen.kt @@ -11,13 +11,13 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.verticalScroll +import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ArrowForward import androidx.compose.material.icons.filled.ClearAll import androidx.compose.material.icons.filled.Delete import androidx.compose.material3.AlertDialog +import androidx.compose.material3.Button import androidx.compose.material3.Divider import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme @@ -35,6 +35,8 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.compose.ui.window.Dialog @@ -43,9 +45,7 @@ import androidx.lifecycle.Lifecycle import com.greenart7c3.nostrsigner.LocalPreferences import com.greenart7c3.nostrsigner.R import com.greenart7c3.nostrsigner.models.Account -import com.greenart7c3.nostrsigner.ui.components.CloseButton import com.greenart7c3.nostrsigner.ui.components.IconRow -import com.greenart7c3.nostrsigner.ui.components.PostButton import com.greenart7c3.nostrsigner.ui.navigation.Route import com.vitorpamplona.quartz.encoders.toNpub import kotlinx.coroutines.launch @@ -124,23 +124,72 @@ fun PermissionsScreen( modifier = Modifier .background(MaterialTheme.colorScheme.background) .fillMaxSize() - .verticalScroll(rememberScrollState()) ) { - Row( - modifier = Modifier - .fillMaxWidth() - .padding(10.dp), - horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically + Text( + selectedPackage!!, + Modifier.fillMaxWidth().padding(8.dp), + fontWeight = FontWeight.Bold, + textAlign = TextAlign.Center, + fontSize = 18.sp + ) + Divider() + LazyColumn( + Modifier.weight(1f) ) { - CloseButton( - onCancel = { - selectedPackage = null + itemsIndexed(permissions, { index, _ -> index }) { index, permission -> + val message = when (permission) { + "NIP04_DECRYPT" -> "Decrypt nip 04 data" + "NIP44_DECRYPT" -> "Decrypt nip 44 data" + "NIP44_ENCRYPT" -> "Encrypt nip 44 data" + "NIP04_ENCRYPT" -> "Encrypt nip 04 data" + "DECRYPT_ZAP_EVENT" -> "Decrypt zap data" + "GET_PUBLIC_KEY" -> "Read your public key" + else -> "Sign event kind ${permission.split("-").last()}" } - ) - - PostButton( - onPost = { + Row( + modifier = Modifier + .padding(vertical = 15.dp, horizontal = 25.dp) + .fillMaxWidth() + ) { + Row( + modifier = Modifier + .weight(1f), + verticalAlignment = Alignment.CenterVertically + ) { + Text( + text = message, + fontSize = 18.sp + ) + } + Icon( + Icons.Default.Delete, + null, + modifier = Modifier + .size(22.dp) + .clickable { + permissions = + permissions.filterIndexed { i, _ -> i != index } + }, + tint = Color.Red + ) + } + } + } + Row( + Modifier + .fillMaxWidth(), + Arrangement.Center + ) { + Button( + onClick = { + selectedPackage = null + }, + Modifier.padding(6.dp) + ) { + Text("Cancel") + } + Button( + onClick = { scope.launch { val localSaved = localAccount.savedApps.filter { !it.key.contains(selectedPackage!!) }.toMutableMap() permissions.forEach { @@ -152,37 +201,9 @@ fun PermissionsScreen( accountStateViewModel.switchUser(localAccount.keyPair.pubKey.toNpub(), Route.Permissions.route) } }, - isActive = true - ) - } - - permissions.forEachIndexed { index, permission -> - Row( - modifier = Modifier - .padding(vertical = 15.dp, horizontal = 25.dp) - .fillMaxWidth() + Modifier.padding(6.dp) ) { - Row( - modifier = Modifier - .weight(1f), - verticalAlignment = Alignment.CenterVertically - ) { - Text( - text = permission, - fontSize = 18.sp - ) - } - Icon( - Icons.Default.Delete, - null, - modifier = Modifier - .size(22.dp) - .clickable { - permissions = - permissions.filterIndexed { i, _ -> i != index } - }, - tint = Color.Red - ) + Text("Confirm") } } }