|
|
|
|
@ -3,6 +3,7 @@ package net.pokeranalytics.android.model.filter |
|
|
|
|
import io.realm.Realm |
|
|
|
|
import io.realm.RealmObject |
|
|
|
|
import io.realm.RealmQuery |
|
|
|
|
import io.realm.RealmResults |
|
|
|
|
import net.pokeranalytics.android.model.realm.Session |
|
|
|
|
|
|
|
|
|
enum class FilterComponent { |
|
|
|
|
@ -16,18 +17,12 @@ enum class SessionFilterable(var fieldName:String? = null) : Filterable { |
|
|
|
|
TOURNAMENT |
|
|
|
|
; |
|
|
|
|
|
|
|
|
|
override fun filter(realm: Realm): RealmQuery<*> { |
|
|
|
|
override fun filter(realmQuery: RealmQuery<*>): RealmQuery<out RealmObject> { |
|
|
|
|
return when (this) { |
|
|
|
|
LIVE -> realm.where(this.relatedEntity).equalTo(this.fieldName, true) |
|
|
|
|
CASH -> realm.where(this.relatedEntity).equalTo(this.fieldName, Session.Type.CASH_GAME.ordinal) |
|
|
|
|
ONLINE -> LIVE.filter(realm).not() |
|
|
|
|
TOURNAMENT -> CASH.filter(realm).not() |
|
|
|
|
LIVE -> realmQuery.equalTo(this.fieldName, true) as RealmQuery<out RealmObject> |
|
|
|
|
CASH -> realmQuery.equalTo(this.fieldName, Session.Type.CASH_GAME.ordinal) as RealmQuery<out RealmObject> |
|
|
|
|
ONLINE -> LIVE.filter(realmQuery.not()) |
|
|
|
|
TOURNAMENT -> CASH.filter(realmQuery.not()) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
override val relatedEntity: Class<out RealmObject> |
|
|
|
|
get() { |
|
|
|
|
return Session::class.java |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |