|
|
|
@ -4,6 +4,7 @@ import io.realm.MutableRealmInteger |
|
|
|
import io.realm.RealmList |
|
|
|
import io.realm.RealmList |
|
|
|
import io.realm.RealmObject |
|
|
|
import io.realm.RealmObject |
|
|
|
import io.realm.annotations.PrimaryKey |
|
|
|
import io.realm.annotations.PrimaryKey |
|
|
|
|
|
|
|
import net.pokeranalytics.android.ui.view.rowrepresentable.FilterElement |
|
|
|
import java.util.* |
|
|
|
import java.util.* |
|
|
|
|
|
|
|
|
|
|
|
//import net.pokeranalytics.android.FilterComponent |
|
|
|
//import net.pokeranalytics.android.FilterComponent |
|
|
|
@ -21,6 +22,34 @@ open class Filter : RealmObject() { |
|
|
|
// for MutableRealmInteger, see https://realm.io/docs/java/latest/#counters |
|
|
|
// for MutableRealmInteger, see https://realm.io/docs/java/latest/#counters |
|
|
|
val usageCount: MutableRealmInteger = MutableRealmInteger.valueOf(0) |
|
|
|
val usageCount: MutableRealmInteger = MutableRealmInteger.valueOf(0) |
|
|
|
|
|
|
|
|
|
|
|
var components: RealmList<FilterComponent>? = null |
|
|
|
var components: RealmList<FilterComponent> = RealmList() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fun componentsFrom(filterElements: ArrayList<FilterElement>) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
components.clear() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var sections = filterElements.mapNotNull { |
|
|
|
|
|
|
|
it.filterSection |
|
|
|
|
|
|
|
}.distinct() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sections.forEach { section -> |
|
|
|
|
|
|
|
var _filterElements = filterElements.filter { |
|
|
|
|
|
|
|
it.filterSection?.let { _section -> |
|
|
|
|
|
|
|
_section == section |
|
|
|
|
|
|
|
} ?: run { |
|
|
|
|
|
|
|
false |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (_filterElements.size == 1) { |
|
|
|
|
|
|
|
var component : FilterComponent = FilterComponent(_filterElements.first()) |
|
|
|
|
|
|
|
components.add(component) |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
var casted = arrayListOf<FilterElement>() |
|
|
|
|
|
|
|
casted.addAll(_filterElements) |
|
|
|
|
|
|
|
var component : FilterComponent = FilterComponent(casted) |
|
|
|
|
|
|
|
components.add(component) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|