Local Variable selectedCategories will always be empty after calling clearChanges()
`viewModelScope.launch {
clearChanges()
//selectedCategories will always be empty after clearChanges() is called
val selectedCategories = _selectedCategory.value.toMutableList()
repeat(categories.size) {
val category = categories[it]
//selectedCategory will always evaluate to null as we are filtering an Empty List
val selectedCategory = selectedCategories.firstOrNull {
category.id == it.id
}
//this check is redundant as selectedCategory is null
if (selectedCategory == null) {
selectedCategories.add(category)
}
}`
**To remove the above redundancy, we should update _selectedCategories directly.
`viewModelScope.launch {
clearChanges()// clear the current list of selected categories
_selectedCategories.value = categories //assign categories directly
}`
This function is now more efficient as it doesn't perform unnecessary checks or operations. It simply replaces the old selections with the new ones
Rewrote
selectAllThisCategory()
on CategorySelectionViewModel to remove code redundancy.Local Variable
selectedCategories
will always be empty after callingclearChanges()
**To remove the above redundancy, we should update
_selectedCategories
directly.This function is now more efficient as it doesn't perform unnecessary checks or operations. It simply replaces the old selections with the new ones