ConfirmDialog + fixes

This commit is contained in:
brosssh 2025-05-09 08:32:38 +02:00
parent 2fc00f7b5f
commit 06b63669b2
4 changed files with 26 additions and 27 deletions

View file

@ -1,21 +1,21 @@
package app.revanced.manager.ui.component package app.revanced.manager.ui.component
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.outlined.Delete
import androidx.compose.material3.AlertDialog import androidx.compose.material3.AlertDialog
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.material3.TextButton import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import app.revanced.manager.R import app.revanced.manager.R
@Composable @Composable
fun GenericDeleteDialog( fun ConfirmDialog(
onDismiss: () -> Unit, onDismiss: () -> Unit,
onConfirm: () -> Unit, onConfirm: () -> Unit,
title: @Composable () -> Unit, title: String,
description: @Composable () -> Unit description: String,
imageVector: ImageVector
) { ) {
AlertDialog( AlertDialog(
onDismissRequest = onDismiss, onDismissRequest = onDismiss,
@ -34,8 +34,8 @@ fun GenericDeleteDialog(
Text(stringResource(R.string.confirm)) Text(stringResource(R.string.confirm))
} }
}, },
title = title, title = { Text(title) },
icon = { Icon(Icons.Outlined.Delete, null) }, icon = { Icon(imageVector, null) },
text = description text = { Text(description) }
) )
} }

View file

@ -1,5 +1,6 @@
package app.revanced.manager.ui.component.bundle package app.revanced.manager.ui.component.bundle
import androidx.compose.material.icons.outlined.Delete
import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
@ -27,7 +28,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
import app.revanced.manager.R import app.revanced.manager.R
import app.revanced.manager.domain.bundles.PatchBundleSource import app.revanced.manager.domain.bundles.PatchBundleSource
import app.revanced.manager.domain.bundles.PatchBundleSource.Extensions.nameState import app.revanced.manager.domain.bundles.PatchBundleSource.Extensions.nameState
import app.revanced.manager.ui.component.GenericDeleteDialog import app.revanced.manager.ui.component.ConfirmDialog
import app.revanced.manager.ui.component.haptics.HapticCheckbox import app.revanced.manager.ui.component.haptics.HapticCheckbox
import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.map
@ -61,21 +62,15 @@ fun BundleItem(
} }
if (showDeleteConfirmationDialog) { if (showDeleteConfirmationDialog) {
GenericDeleteDialog( ConfirmDialog(
onDismiss = { showDeleteConfirmationDialog = false }, onDismiss = { showDeleteConfirmationDialog = false },
onConfirm = { onConfirm = {
onDelete() onDelete()
viewBundleDialogPage = false viewBundleDialogPage = false
}, },
title = { Text(stringResource(R.string.bundle_delete_single_dialog_title)) }, title = stringResource(R.string.bundle_delete_single_dialog_title),
description = { description = stringResource(R.string.bundle_delete_single_dialog_description, name),
Text( imageVector = Icons.Outlined.Delete
stringResource(
R.string.bundle_delete_single_dialog_description,
name
)
)
}
) )
} }

View file

@ -21,6 +21,7 @@ import androidx.compose.material.icons.filled.BatteryAlert
import androidx.compose.material.icons.filled.Close import androidx.compose.material.icons.filled.Close
import androidx.compose.material.icons.outlined.Apps import androidx.compose.material.icons.outlined.Apps
import androidx.compose.material.icons.outlined.BugReport import androidx.compose.material.icons.outlined.BugReport
import androidx.compose.material.icons.outlined.Delete
import androidx.compose.material.icons.outlined.DeleteOutline import androidx.compose.material.icons.outlined.DeleteOutline
import androidx.compose.material.icons.outlined.Download import androidx.compose.material.icons.outlined.Download
import androidx.compose.material.icons.outlined.Refresh import androidx.compose.material.icons.outlined.Refresh
@ -62,7 +63,7 @@ import app.revanced.manager.ui.component.AppTopBar
import app.revanced.manager.ui.component.AutoUpdatesDialog import app.revanced.manager.ui.component.AutoUpdatesDialog
import app.revanced.manager.ui.component.AvailableUpdateDialog import app.revanced.manager.ui.component.AvailableUpdateDialog
import app.revanced.manager.ui.component.NotificationCard import app.revanced.manager.ui.component.NotificationCard
import app.revanced.manager.ui.component.GenericDeleteDialog import app.revanced.manager.ui.component.ConfirmDialog
import app.revanced.manager.ui.component.bundle.BundleTopBar import app.revanced.manager.ui.component.bundle.BundleTopBar
import app.revanced.manager.ui.component.bundle.ImportPatchBundleDialog import app.revanced.manager.ui.component.bundle.ImportPatchBundleDialog
import app.revanced.manager.ui.component.haptics.HapticFloatingActionButton import app.revanced.manager.ui.component.haptics.HapticFloatingActionButton
@ -157,14 +158,15 @@ fun DashboardScreen(
var showDeleteConfirmationDialog by rememberSaveable { mutableStateOf(false) } var showDeleteConfirmationDialog by rememberSaveable { mutableStateOf(false) }
if (showDeleteConfirmationDialog) { if (showDeleteConfirmationDialog) {
GenericDeleteDialog( ConfirmDialog(
onDismiss = { showDeleteConfirmationDialog = false }, onDismiss = { showDeleteConfirmationDialog = false },
onConfirm = { onConfirm = {
vm.selectedSources.forEach { if (!it.isDefault) vm.delete(it) } vm.selectedSources.forEach { if (!it.isDefault) vm.delete(it) }
vm.cancelSourceSelection() vm.cancelSourceSelection()
}, },
title = { Text(stringResource(R.string.bundle_delete_multiple_dialog_title)) }, title = stringResource(R.string.bundle_delete_multiple_dialog_title),
description = { Text(stringResource(R.string.bundle_delete_multiple_dialog_description)) } description = stringResource(R.string.bundle_delete_multiple_dialog_description),
imageVector = Icons.Outlined.Delete
) )
} }

View file

@ -9,6 +9,7 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.items
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Delete import androidx.compose.material.icons.filled.Delete
import androidx.compose.material.icons.outlined.Delete
import androidx.compose.material3.AlertDialog import androidx.compose.material3.AlertDialog
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
@ -43,7 +44,7 @@ import app.revanced.manager.ui.component.AppTopBar
import app.revanced.manager.ui.component.ExceptionViewerDialog import app.revanced.manager.ui.component.ExceptionViewerDialog
import app.revanced.manager.ui.component.GroupHeader import app.revanced.manager.ui.component.GroupHeader
import app.revanced.manager.ui.component.LazyColumnWithScrollbar import app.revanced.manager.ui.component.LazyColumnWithScrollbar
import app.revanced.manager.ui.component.GenericDeleteDialog import app.revanced.manager.ui.component.ConfirmDialog
import app.revanced.manager.ui.component.haptics.HapticCheckbox import app.revanced.manager.ui.component.haptics.HapticCheckbox
import app.revanced.manager.ui.component.settings.SettingsListItem import app.revanced.manager.ui.component.settings.SettingsListItem
import app.revanced.manager.ui.viewmodel.DownloadsViewModel import app.revanced.manager.ui.viewmodel.DownloadsViewModel
@ -63,11 +64,12 @@ fun DownloadsSettingsScreen(
var showDeleteConfirmationDialog by rememberSaveable { mutableStateOf(false) } var showDeleteConfirmationDialog by rememberSaveable { mutableStateOf(false) }
if (showDeleteConfirmationDialog) { if (showDeleteConfirmationDialog) {
GenericDeleteDialog( ConfirmDialog(
onDismiss = { showDeleteConfirmationDialog = false }, onDismiss = { showDeleteConfirmationDialog = false },
onConfirm = { viewModel.deleteApps() }, onConfirm = { viewModel.deleteApps() },
title = { Text(stringResource(R.string.downloader_plugin_delete_apps_title)) }, title = stringResource(R.string.downloader_plugin_delete_apps_title),
description = { Text(stringResource(R.string.downloader_plugin_delete_apps_description)) } description = stringResource(R.string.downloader_plugin_delete_apps_description),
imageVector = Icons.Outlined.Delete
) )
} }