https://kotlinlang.org logo
Title
o

oday

04/01/2020, 1:59 PM
private fun getActiveFilters(categoryId: Int): String? {
        val activeFilters =  mutableFilterItems.value?.mapNotNull {
            it.takeIf { filterItem ->
                filterItem.categoryId == categoryId && filterItem.toggled
            }
        }?.joinToString { it.itemValue.capitalize() }
        
        return activeFilters
    }
s

spand

04/01/2020, 2:02 PM
return activeFilters?.takeIf { it.isNotEmpty() }
?
o

oday

04/01/2020, 2:09 PM
yea true, was looking for something like ternary or some kung fu stuff
s

StavFX

04/06/2020, 9:20 PM
Most glaring thing I see is the use of
mapNotNull + takeIf
could be replaced with a simple
filter
So combined with Johannes/Hakob’s suggestion
private fun getActiveFilters(categoryId: Int): String? {
   return mutableFilterItems.value
      ?.filter { it.categoryId == categoryId && it.toggled }
      ?.takeIf { it.isNotEmpty() }
      ?.joinToString { it.itemValue.capitalize() }
}
But I would definitely reconsider the use of nulls here, maybe return an empty String like @llsouder suggested