oday
12/13/2018, 5:44 PMkarelpeeters
12/13/2018, 5:48 PMtrue
?oday
12/13/2018, 5:49 PMkarelpeeters
12/13/2018, 5:49 PMall
?ArrayList
at the end?oday
12/13/2018, 5:50 PMall
karelpeeters
12/13/2018, 5:51 PMfilterTo(ArrayList()) { ... }
. But what a weird method!oday
12/13/2018, 5:51 PMkarelpeeters
12/13/2018, 5:51 PMall
?oday
12/13/2018, 5:52 PMkarelpeeters
12/13/2018, 5:53 PMoriginalListings.filter { listing -> currentFilters .all { (str, enabled) -> !enabled || (listing.tags != null && listing.tags.isNotEmpty() && listing.tags[0] != getString(str)) } }
predicates
list.oday
12/13/2018, 5:54 PMkarelpeeters
12/13/2018, 5:56 PModay
12/13/2018, 5:57 PMkarelpeeters
12/13/2018, 5:57 PModay
12/13/2018, 5:57 PMkarelpeeters
12/13/2018, 5:59 PMclass Filter(val str: String, val pred: (CarLeasingResponse) -> Boolean, var enabled: Boolean)
val filters = listOf(Filter(...), Filter(...))
originalListings.filter { listing -> filters.all { !it.enabled || it.pred(listing) } }
oday
12/13/2018, 6:00 PMkarelpeeters
12/13/2018, 6:01 PModay
12/13/2018, 6:08 PMall
on currentFilters, and just place the predicates in a long if statement with ORs for each predicatearve
12/13/2018, 8:33 PM“matches this active filter, or that active filter or that active filter”
vs filter X and filter Y are ON, i want to see cars matching both these predicates
Are you sure you don't mean filter X and filter Y are ON, i want to see cars matching at least one of these predicates
?
If that's the case you might be looking for Collections.any { predicate}
(as opposed to all
)?oday
12/13/2018, 8:39 PMkarelpeeters
12/13/2018, 8:47 PMany
? An if with a bunch of conditions with &&
-> all
, and ||
-> any
.oday
12/13/2018, 8:49 PMkarelpeeters
12/13/2018, 8:50 PMfilters.all { !it.enabled || it.pred(listing)
oday
12/13/2018, 8:50 PMkarelpeeters
12/13/2018, 9:00 PModay
12/13/2018, 9:01 PMkarelpeeters
12/13/2018, 9:02 PModay
12/13/2018, 9:06 PM