For #23173 - CheckChanged use a single variable instead of two for checked status

pull/543/head
Alexandru2909 2 years ago committed by mergify[bot]
parent bea17a4ab8
commit 73dcc0c6d6

@ -43,10 +43,7 @@ class CollectionCreationTabListAdapter(
when (payloads[0]) {
is CheckChanged -> {
val checkChanged = payloads[0] as CheckChanged
if (checkChanged.shouldBeChecked || checkChanged.shouldBeUnchecked) {
holder.changeCheckBoxState(checkChanged.shouldBeChecked)
}
binding.tabSelectedCheckbox.isGone = checkChanged.shouldHideCheckBox
holder.updateCheckbox(checkChanged)
}
}
}
@ -111,9 +108,11 @@ class TabViewHolder(private val binding: CollectionTabListRowBinding) : ViewHold
/**
* Method used to change the tabSelectedCheckbox state
* @param checkChanged [CheckChanged] class containing the required checkbox updates
*/
fun changeCheckBoxState(shouldBeChecked: Boolean) {
binding.tabSelectedCheckbox.isChecked = shouldBeChecked
fun updateCheckbox(checkChanged: CheckChanged) {
binding.tabSelectedCheckbox.isChecked = checkChanged.shouldBeChecked
binding.tabSelectedCheckbox.isGone = checkChanged.shouldHideCheckBox
}
companion object {

@ -38,9 +38,8 @@ internal class TabDiffUtil(
* Returns a change payload indication if the item is now/no longer selected.
*/
override fun getChangePayload(oldItemPosition: Int, newItemPosition: Int): Any? {
val shouldBeChecked = newItemSelected(newItemPosition) && !oldItemSelected(oldItemPosition)
val shouldBeUnchecked = !newItemSelected(newItemPosition) && oldItemSelected(oldItemPosition)
return CheckChanged(shouldBeChecked, shouldBeUnchecked, newHideCheckboxes)
val shouldBeChecked = newItemSelected(newItemPosition)
return CheckChanged(shouldBeChecked, newHideCheckboxes)
}
override fun getOldListSize(): Int = old.size
@ -51,12 +50,10 @@ internal class TabDiffUtil(
}
/**
* @property shouldBeChecked Item was previously unchecked and should be checked.
* @property shouldBeUnchecked Item was previously checked and should be unchecked.
* @property shouldBeChecked Item should be checked.
* @property shouldHideCheckBox Checkbox should be visible.
*/
data class CheckChanged(
val shouldBeChecked: Boolean,
val shouldBeUnchecked: Boolean,
val shouldHideCheckBox: Boolean
)

@ -96,8 +96,7 @@ class TabDiffUtilTest {
assertEquals(
CheckChanged(
shouldBeChecked = false,
shouldBeUnchecked = false,
shouldBeChecked = true,
shouldHideCheckBox = false
),
payload
@ -119,7 +118,6 @@ class TabDiffUtilTest {
assertEquals(
CheckChanged(
shouldBeChecked = true,
shouldBeUnchecked = false,
shouldHideCheckBox = false
),
payload
@ -141,7 +139,6 @@ class TabDiffUtilTest {
assertEquals(
CheckChanged(
shouldBeChecked = false,
shouldBeUnchecked = true,
shouldHideCheckBox = true
),
payload

Loading…
Cancel
Save