Fix updating child list on deletion

This commit is contained in:
Luna712 2024-07-10 14:06:20 -06:00 committed by GitHub
parent 20b2fcaedc
commit 80281e9773
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 22 additions and 6 deletions

View file

@ -163,7 +163,12 @@ class DownloadChildFragment : Fragment() {
attachBackPressedCallback() attachBackPressedCallback()
binding?.btnDelete?.setOnClickListener { binding?.btnDelete?.setOnClickListener {
context?.let { ctx -> downloadsViewModel.handleMultiDelete(ctx) } context?.let { ctx ->
downloadsViewModel.handleMultiDelete(ctx) {
arguments?.getString("folder")
?.let { folder -> downloadsViewModel.updateChildList(ctx, folder) }
}
}
} }
binding?.btnCancel?.setOnClickListener { binding?.btnCancel?.setOnClickListener {

View file

@ -224,7 +224,11 @@ class DownloadFragment : Fragment() {
attachBackPressedCallback() attachBackPressedCallback()
binding?.btnDelete?.setOnClickListener { binding?.btnDelete?.setOnClickListener {
context?.let { ctx -> downloadsViewModel.handleMultiDelete(ctx) } context?.let { ctx ->
downloadsViewModel.handleMultiDelete(ctx) {
downloadsViewModel.updateList(ctx)
}
}
} }
binding?.btnCancel?.setOnClickListener { binding?.btnCancel?.setOnClickListener {

View file

@ -239,7 +239,7 @@ class DownloadViewModel : ViewModel() {
} }
} }
fun handleMultiDelete(context: Context) = viewModelScope.launchSafe { fun handleMultiDelete(context: Context, onDeleteConfirm: () -> Unit) = viewModelScope.launchSafe {
val selectedItemsList = selectedItems.value ?: mutableListOf() val selectedItemsList = selectedItems.value ?: mutableListOf()
val ids = selectedItemsList.flatMap { item -> val ids = selectedItemsList.flatMap { item ->
@ -279,14 +279,21 @@ class DownloadViewModel : ViewModel() {
} }
}.unzip() }.unzip()
showDeleteConfirmationDialog(context, ids, names.filterNotNull(), seriesNames.filterNotNull()) showDeleteConfirmationDialog(
context,
ids,
names.filterNotNull(),
seriesNames.filterNotNull(),
onDeleteConfirm
)
} }
private fun showDeleteConfirmationDialog( private fun showDeleteConfirmationDialog(
context: Context, context: Context,
ids: List<Int>, ids: List<Int>,
names: List<String>, names: List<String>,
seriesNames: List<String> seriesNames: List<String>,
onDeleteConfirm: () -> Unit
) { ) {
val formattedNames = names.joinToString(separator = "\n") { "$it" } val formattedNames = names.joinToString(separator = "\n") { "$it" }
val formattedSeriesNames = seriesNames.joinToString(separator = "\n") { "$it" } val formattedSeriesNames = seriesNames.joinToString(separator = "\n") { "$it" }
@ -310,7 +317,7 @@ class DownloadViewModel : ViewModel() {
viewModelScope.launchSafe { viewModelScope.launchSafe {
deleteFilesAndUpdateSettings(context, ids, this) deleteFilesAndUpdateSettings(context, ids, this)
setIsMultiDeleteState(false) setIsMultiDeleteState(false)
updateList(context) onDeleteConfirm.invoke()
} }
} }
DialogInterface.BUTTON_NEGATIVE -> { DialogInterface.BUTTON_NEGATIVE -> {