mirror of
https://github.com/greenart7c3/Amber.git
synced 2026-10-06 03:18:23 +00:00
better description of the permissions
This commit is contained in:
@@ -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")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user