From 77a1b2ba89c49ccd298d4e436ca09052bd6bd3af Mon Sep 17 00:00:00 2001 From: greenart7c3 <115044884+greenart7c3@users.noreply.github.com> Date: Wed, 26 Apr 2023 14:41:36 -0300 Subject: [PATCH] show a dialog when disabling tor --- .../amethyst/ui/navigation/DrawerContent.kt | 53 +++++++++++++++++-- 1 file changed, 48 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt index f328efbd3..696faf20c 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt @@ -15,6 +15,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.AlertDialog import androidx.compose.material.Divider import androidx.compose.material.ExperimentalMaterialApi import androidx.compose.material.Icon @@ -24,7 +25,9 @@ import androidx.compose.material.ModalBottomSheetState import androidx.compose.material.ScaffoldState import androidx.compose.material.Surface import androidx.compose.material.Text +import androidx.compose.material.TextButton import androidx.compose.runtime.Composable +import androidx.compose.runtime.MutableState import androidx.compose.runtime.getValue import androidx.compose.runtime.livedata.observeAsState import androidx.compose.runtime.mutableStateOf @@ -235,6 +238,7 @@ fun ListContent( val coroutineScope = rememberCoroutineScope() var backupDialogOpen by remember { mutableStateOf(false) } var checked by remember { mutableStateOf(account.proxy != null) } + val openDialog = remember { mutableStateOf(false) } Column(modifier = modifier.fillMaxHeight()) { if (accountUser != null) { @@ -280,11 +284,12 @@ fun ListContent( icon = R.drawable.ic_tor, tint = MaterialTheme.colors.onBackground, onClick = { - checked = !checked - println("changed tor to $checked") - account.proxy = HttpClient.initProxy(checked, "127.0.0.1", 9050) - ServiceManager.pause() - ServiceManager.start() + if (checked) { + openDialog.value = true + } else { + checked = true + enableTor(account, true, openDialog) + } } ) @@ -301,6 +306,44 @@ fun ListContent( if (backupDialogOpen) { AccountBackupDialog(account, onClose = { backupDialogOpen = false }) } + + if (openDialog.value) { + AlertDialog( + text = { Text(text = "Do you really want to disable tor?") }, + onDismissRequest = { }, + confirmButton = { + TextButton( + onClick = { + openDialog.value = false + checked = false + enableTor(account, false, openDialog) + } + ) { + Text(text = "Yes") + } + }, + dismissButton = { + TextButton( + onClick = { + openDialog.value = false + } + ) { + Text(text = "No") + } + } + ) + } +} + +private fun enableTor( + account: Account, + checked: Boolean, + openDialog: MutableState +) { + account.proxy = HttpClient.initProxy(checked, "127.0.0.1", 9050) + ServiceManager.pause() + ServiceManager.start() + openDialog.value = false } @Composable