From 80281e97731bf3ceb5cd006115f73082efff6f1e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 10 Jul 2024 14:06:20 -0600 Subject: [PATCH] Fix updating child list on deletion --- .../ui/download/DownloadChildFragment.kt | 7 ++++++- .../cloudstream3/ui/download/DownloadFragment.kt | 6 +++++- .../cloudstream3/ui/download/DownloadViewModel.kt | 15 +++++++++++---- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadChildFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadChildFragment.kt index 71a1b109..63283401 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadChildFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadChildFragment.kt @@ -163,7 +163,12 @@ class DownloadChildFragment : Fragment() { attachBackPressedCallback() 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 { diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadFragment.kt index 43cc968a..4d1ef3ac 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadFragment.kt @@ -224,7 +224,11 @@ class DownloadFragment : Fragment() { attachBackPressedCallback() binding?.btnDelete?.setOnClickListener { - context?.let { ctx -> downloadsViewModel.handleMultiDelete(ctx) } + context?.let { ctx -> + downloadsViewModel.handleMultiDelete(ctx) { + downloadsViewModel.updateList(ctx) + } + } } binding?.btnCancel?.setOnClickListener { diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadViewModel.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadViewModel.kt index 8d8962d7..3373fb8b 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadViewModel.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadViewModel.kt @@ -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 ids = selectedItemsList.flatMap { item -> @@ -279,14 +279,21 @@ class DownloadViewModel : ViewModel() { } }.unzip() - showDeleteConfirmationDialog(context, ids, names.filterNotNull(), seriesNames.filterNotNull()) + showDeleteConfirmationDialog( + context, + ids, + names.filterNotNull(), + seriesNames.filterNotNull(), + onDeleteConfirm + ) } private fun showDeleteConfirmationDialog( context: Context, ids: List, names: List, - seriesNames: List + seriesNames: List, + onDeleteConfirm: () -> Unit ) { val formattedNames = names.joinToString(separator = "\n") { "• $it" } val formattedSeriesNames = seriesNames.joinToString(separator = "\n") { "• $it" } @@ -310,7 +317,7 @@ class DownloadViewModel : ViewModel() { viewModelScope.launchSafe { deleteFilesAndUpdateSettings(context, ids, this) setIsMultiDeleteState(false) - updateList(context) + onDeleteConfirm.invoke() } } DialogInterface.BUTTON_NEGATIVE -> {