diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadAdapter.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadAdapter.kt index 9bd3f065..56cf2ca1 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadAdapter.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/download/DownloadAdapter.kt @@ -172,9 +172,19 @@ class DownloadAdapter( downloadButton.isVisible = !isMultiDeleteState episodeHolder.apply { - setOnClickListener { - mediaClickCallback.invoke(DownloadClickEvent(DOWNLOAD_ACTION_PLAY_FILE, card.child)) + if (isMultiDeleteState) { + setOnClickListener { + val isChecked = !deleteCheckbox.isChecked + deleteCheckbox.isChecked = isChecked + selectedIds[card.data.id] = isChecked + selectedChangedCallback.invoke(card.data.id, card.data.name, isChecked) + } + } else { + setOnClickListener { + mediaClickCallback.invoke(DownloadClickEvent(DOWNLOAD_ACTION_PLAY_FILE, card.child)) + } } + setOnLongClickListener { mediaClickCallback.invoke(DownloadClickEvent(DOWNLOAD_ACTION_LONG_CLICK, card.child)) true @@ -201,8 +211,24 @@ class DownloadAdapter( logError(e) } - episodeHolder.setOnClickListener { - headerClickCallback.invoke(DownloadHeaderClickEvent(DOWNLOAD_ACTION_GO_TO_CHILD, card.data)) + episodeHolder.apply { + if (isMultiDeleteState) { + setOnClickListener { + val isChecked = !deleteCheckbox.isChecked + deleteCheckbox.isChecked = isChecked + selectedIds[card.data.id] = isChecked + selectedChangedCallback.invoke(card.data.id, card.data.name, isChecked) + } + } else { + setOnClickListener { + headerClickCallback.invoke(DownloadHeaderClickEvent(DOWNLOAD_ACTION_GO_TO_CHILD, card.data)) + } + } + + setOnLongClickListener { + headerClickCallback.invoke(DownloadHeaderClickEvent(DOWNLOAD_ACTION_LONG_CLICK, card.data)) + true + } } } 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 252872a2..534d1d21 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 @@ -187,6 +187,16 @@ class DownloadFragment : Fragment() { DOWNLOAD_ACTION_LOAD_RESULT -> { (activity as AppCompatActivity?)?.loadResult(click.data.url, click.data.apiName) } + DOWNLOAD_ACTION_LONG_CLICK -> { + downloadsViewModel.addSelected( + click.data.id, + click.data.name + ) + (binding?.downloadList?.adapter as? DownloadAdapter)?.updateSelectedItem( + click.data.id, + true + ) + } } }