better description of the permissions

This commit is contained in:
greenart7c3
2023-09-20 13:36:55 -03:00
parent 77a3ea4d1a
commit 0dc160a9d0
@@ -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")
}
}
}