Some cleanup

This commit is contained in:
Luna712 2024-07-09 21:19:11 -06:00 committed by GitHub
parent 7f50f0ca14
commit a52ae5296a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 18 additions and 21 deletions

View file

@ -64,10 +64,9 @@ data class DownloadHeaderClickEvent(
) )
class DownloadAdapter( class DownloadAdapter(
private val headerClickCallback: (DownloadHeaderClickEvent) -> Unit, private val onHeaderClickEvent: (DownloadHeaderClickEvent) -> Unit,
private val mediaClickCallback: (DownloadClickEvent) -> Unit, private val onItemClickEvent: (DownloadClickEvent) -> Unit,
private val selectedChangedCallback: (VisualDownloadCached, Boolean) -> Unit, private val onItemSelectionChanged: (VisualDownloadCached, Boolean) -> Unit,
private val multiDeleteStateCallback: (VisualDownloadCached) -> Unit,
) : ListAdapter<VisualDownloadCached, DownloadAdapter.DownloadViewHolder>(DiffCallback()) { ) : ListAdapter<VisualDownloadCached, DownloadAdapter.DownloadViewHolder>(DiffCallback()) {
private var isMultiDeleteState: Boolean = false private var isMultiDeleteState: Boolean = false
@ -102,8 +101,8 @@ class DownloadAdapter(
} }
setOnLongClickListener { setOnLongClickListener {
multiDeleteStateCallback.invoke(card)
toggleIsChecked(deleteCheckbox, card) toggleIsChecked(deleteCheckbox, card)
onItemSelectionChanged.invoke(card, selectedIds[data.id] ?: false)
true true
} }
} }
@ -116,13 +115,13 @@ class DownloadAdapter(
} }
} else { } else {
setOnClickListener { setOnClickListener {
headerClickCallback.invoke(DownloadHeaderClickEvent(DOWNLOAD_ACTION_LOAD_RESULT, data)) onHeaderClickEvent.invoke(DownloadHeaderClickEvent(DOWNLOAD_ACTION_LOAD_RESULT, data))
} }
} }
setOnLongClickListener { setOnLongClickListener {
multiDeleteStateCallback.invoke(card)
toggleIsChecked(deleteCheckbox, card) toggleIsChecked(deleteCheckbox, card)
onItemSelectionChanged.invoke(card, selectedIds[data.id] ?: false)
true true
} }
} }
@ -136,7 +135,7 @@ class DownloadAdapter(
if (isMultiDeleteState) { if (isMultiDeleteState) {
deleteCheckbox.setOnCheckedChangeListener { _, isChecked -> deleteCheckbox.setOnCheckedChangeListener { _, isChecked ->
selectedIds[data.id] = isChecked selectedIds[data.id] = isChecked
selectedChangedCallback.invoke(card, isChecked) onItemSelectionChanged.invoke(card, isChecked)
} }
} else deleteCheckbox.setOnCheckedChangeListener(null) } else deleteCheckbox.setOnCheckedChangeListener(null)
@ -174,12 +173,12 @@ class DownloadAdapter(
ContextCompat.getDrawable(downloadButton.context, downloadButton.progressDrawable) ContextCompat.getDrawable(downloadButton.context, downloadButton.progressDrawable)
} }
downloadButton.setDefaultClickListener(card.child, downloadHeaderInfo, mediaClickCallback) downloadButton.setDefaultClickListener(card.child, downloadHeaderInfo, onItemClickEvent)
downloadButton.isVisible = !isMultiDeleteState downloadButton.isVisible = !isMultiDeleteState
if (!isMultiDeleteState) { if (!isMultiDeleteState) {
episodeHolder.setOnClickListener { episodeHolder.setOnClickListener {
mediaClickCallback.invoke(DownloadClickEvent(DOWNLOAD_ACTION_PLAY_FILE, card.child)) onItemClickEvent.invoke(DownloadClickEvent(DOWNLOAD_ACTION_PLAY_FILE, card.child))
} }
} }
} }
@ -205,7 +204,7 @@ class DownloadAdapter(
if (!isMultiDeleteState) { if (!isMultiDeleteState) {
episodeHolder.setOnClickListener { episodeHolder.setOnClickListener {
headerClickCallback.invoke(DownloadHeaderClickEvent(DOWNLOAD_ACTION_GO_TO_CHILD, card.data)) onHeaderClickEvent.invoke(DownloadHeaderClickEvent(DOWNLOAD_ACTION_GO_TO_CHILD, card.data))
} }
} }
} }
@ -245,7 +244,7 @@ class DownloadAdapter(
ContextCompat.getDrawable(downloadButton.context, downloadButton.progressDrawable) ContextCompat.getDrawable(downloadButton.context, downloadButton.progressDrawable)
} }
downloadButton.setDefaultClickListener(data, downloadChildEpisodeTextExtra, mediaClickCallback) downloadButton.setDefaultClickListener(data, downloadChildEpisodeTextExtra, onItemClickEvent)
downloadButton.isVisible = !isMultiDeleteState downloadButton.isVisible = !isMultiDeleteState
downloadChildEpisodeText.apply { downloadChildEpisodeText.apply {
@ -254,7 +253,7 @@ class DownloadAdapter(
} }
downloadChildEpisodeHolder.setOnClickListener { downloadChildEpisodeHolder.setOnClickListener {
mediaClickCallback.invoke(DownloadClickEvent(DOWNLOAD_ACTION_PLAY_FILE, data)) onItemClickEvent.invoke(DownloadClickEvent(DOWNLOAD_ACTION_PLAY_FILE, data))
} }
downloadChildEpisodeHolder.apply { downloadChildEpisodeHolder.apply {
@ -266,14 +265,14 @@ class DownloadAdapter(
} }
else -> { else -> {
setOnClickListener { setOnClickListener {
mediaClickCallback.invoke(DownloadClickEvent(DOWNLOAD_ACTION_PLAY_FILE, data)) onItemClickEvent.invoke(DownloadClickEvent(DOWNLOAD_ACTION_PLAY_FILE, data))
} }
} }
} }
setOnLongClickListener { setOnLongClickListener {
multiDeleteStateCallback.invoke(card)
toggleIsChecked(deleteCheckbox, card) toggleIsChecked(deleteCheckbox, card)
onItemSelectionChanged.invoke(card, selectedIds[data.id] ?: false)
true true
} }
} }
@ -281,7 +280,7 @@ class DownloadAdapter(
if (isMultiDeleteState) { if (isMultiDeleteState) {
deleteCheckbox.setOnCheckedChangeListener { _, isChecked -> deleteCheckbox.setOnCheckedChangeListener { _, isChecked ->
selectedIds[data.id] = isChecked selectedIds[data.id] = isChecked
selectedChangedCallback.invoke(card, isChecked) onItemSelectionChanged.invoke(card, isChecked)
} }
} else deleteCheckbox.setOnCheckedChangeListener(null) } else deleteCheckbox.setOnCheckedChangeListener(null)
@ -343,7 +342,7 @@ class DownloadAdapter(
val isChecked = !checkbox.isChecked val isChecked = !checkbox.isChecked
checkbox.isChecked = isChecked checkbox.isChecked = isChecked
selectedIds[item.data.id] = isChecked selectedIds[item.data.id] = isChecked
selectedChangedCallback.invoke(item, isChecked) onItemSelectionChanged.invoke(item, isChecked)
} }
class DiffCallback : DiffUtil.ItemCallback<VisualDownloadCached>() { class DiffCallback : DiffUtil.ItemCallback<VisualDownloadCached>() {

View file

@ -140,8 +140,7 @@ class DownloadChildFragment : Fragment() {
if (isChecked) { if (isChecked) {
downloadsViewModel.addSelected(card) downloadsViewModel.addSelected(card)
} else downloadsViewModel.removeSelected(card) } else downloadsViewModel.removeSelected(card)
}, }
{ card -> downloadsViewModel.addSelected(card) }
) )
binding?.downloadChildList?.apply { binding?.downloadChildList?.apply {

View file

@ -165,8 +165,7 @@ class DownloadFragment : Fragment() {
if (isChecked) { if (isChecked) {
downloadsViewModel.addSelected(card) downloadsViewModel.addSelected(card)
} else downloadsViewModel.removeSelected(card) } else downloadsViewModel.removeSelected(card)
}, }
{ card -> downloadsViewModel.addSelected(card) }
) )
binding?.downloadList?.apply { binding?.downloadList?.apply {