refactor: extract deletion confirmation dialog to its own method

This commit is contained in:
Harsh Shandilya 2022-11-18 12:19:46 +05:30
parent 6fa8b188e6
commit 10b502fb0a
No known key found for this signature in database

View file

@ -43,29 +43,14 @@ private fun KeyItem(
modifier: Modifier = Modifier,
) {
var isDeleting by remember { mutableStateOf(false) }
if (isDeleting) {
AlertDialog(
onDismissRequest = { isDeleting = false },
title = {
Text(text = stringResource(R.string.pgp_key_manager_delete_confirmation_dialog_title))
},
confirmButton = {
TextButton(
onClick = {
DeleteConfirmationDialog(
isDeleting = isDeleting,
onDismiss = { isDeleting = false },
onConfirm = {
onItemClick(identifier)
isDeleting = false
}
) {
Text(text = stringResource(R.string.dialog_yes))
}
},
dismissButton = {
TextButton(onClick = { isDeleting = false }) {
Text(text = stringResource(R.string.dialog_no))
}
},
)
}
val label =
when (identifier) {
is GpgIdentifier.KeyId -> identifier.id.toString()
@ -86,6 +71,29 @@ private fun KeyItem(
}
}
@Suppress("NOTHING_TO_INLINE")
@Composable
private inline fun DeleteConfirmationDialog(
isDeleting: Boolean,
noinline onDismiss: () -> Unit,
noinline onConfirm: () -> Unit,
) {
if (isDeleting) {
AlertDialog(
onDismissRequest = onDismiss,
title = {
Text(text = stringResource(R.string.pgp_key_manager_delete_confirmation_dialog_title))
},
confirmButton = {
TextButton(onClick = onConfirm) { Text(text = stringResource(R.string.dialog_yes)) }
},
dismissButton = {
TextButton(onClick = onDismiss) { Text(text = stringResource(R.string.dialog_no)) }
},
)
}
}
@Preview
@Composable
private fun KeyListPreview() {