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

View file

@ -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
)
}
}
}