Make clicking items select them if isMultiDeleteState

This commit is contained in:
Luna712 2024-07-07 13:09:53 -06:00 committed by GitHub
parent e5be3e1866
commit 028cc46123
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 40 additions and 4 deletions

View file

@ -172,9 +172,19 @@ class DownloadAdapter(
downloadButton.isVisible = !isMultiDeleteState downloadButton.isVisible = !isMultiDeleteState
episodeHolder.apply { 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 { setOnClickListener {
mediaClickCallback.invoke(DownloadClickEvent(DOWNLOAD_ACTION_PLAY_FILE, card.child)) mediaClickCallback.invoke(DownloadClickEvent(DOWNLOAD_ACTION_PLAY_FILE, card.child))
} }
}
setOnLongClickListener { setOnLongClickListener {
mediaClickCallback.invoke(DownloadClickEvent(DOWNLOAD_ACTION_LONG_CLICK, card.child)) mediaClickCallback.invoke(DownloadClickEvent(DOWNLOAD_ACTION_LONG_CLICK, card.child))
true true
@ -201,11 +211,27 @@ class DownloadAdapter(
logError(e) logError(e)
} }
episodeHolder.setOnClickListener { 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)) headerClickCallback.invoke(DownloadHeaderClickEvent(DOWNLOAD_ACTION_GO_TO_CHILD, card.data))
} }
} }
setOnLongClickListener {
headerClickCallback.invoke(DownloadHeaderClickEvent(DOWNLOAD_ACTION_LONG_CLICK, card.data))
true
}
}
}
private fun bindChild(card: VisualDownloadChildCached?) { private fun bindChild(card: VisualDownloadChildCached?) {
if (binding !is DownloadChildEpisodeBinding || card == null) return if (binding !is DownloadChildEpisodeBinding || card == null) return

View file

@ -187,6 +187,16 @@ class DownloadFragment : Fragment() {
DOWNLOAD_ACTION_LOAD_RESULT -> { DOWNLOAD_ACTION_LOAD_RESULT -> {
(activity as AppCompatActivity?)?.loadResult(click.data.url, click.data.apiName) (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
)
}
} }
} }