feature/top10
Razmig Sarkissian 7 years ago
parent f419fa9468
commit ceaff5b02c
  1. 28
      app/src/main/java/net/pokeranalytics/android/model/filter/FilterComponent.kt
  2. 11
      app/src/main/java/net/pokeranalytics/android/model/filter/Filterable.kt

@ -1,5 +1,33 @@
package net.pokeranalytics.android.model.filter package net.pokeranalytics.android.model.filter
import io.realm.Realm
import io.realm.RealmObject
import io.realm.RealmQuery
import net.pokeranalytics.android.model.realm.Session
enum class FilterComponent { enum class FilterComponent {
} }
enum class SessionFilterable(var fieldName:String? = null) : Filterable {
LIVE("bankroll.live"),
CASH("type"),
ONLINE,
TOURNAMENT
;
override fun filter(realm: Realm): RealmQuery<*> {
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()
}
}
override val relatedEntity: Class<out RealmObject>
get() {
return Session::class.java
}
}

@ -1,7 +1,11 @@
package net.pokeranalytics.android.model.filter package net.pokeranalytics.android.model.filter
import io.realm.Realm
import io.realm.RealmObject import io.realm.RealmObject
import io.realm.RealmQuery
import io.realm.RealmResults import io.realm.RealmResults
import net.pokeranalytics.android.model.LiveData
import net.pokeranalytics.android.model.realm.*
/** /**
* We want to be able to store filters in the database: * We want to be able to store filters in the database:
@ -30,7 +34,8 @@ import io.realm.RealmResults
*/ */
interface Filterable { interface Filterable {
fun filter(realm: Realm): RealmQuery<*>
val relatedEntity: Class<out RealmObject>
} }
class FilterManager { class FilterManager {
@ -38,6 +43,10 @@ class FilterManager {
fun test(realmResults: RealmResults<RealmObject>) { fun test(realmResults: RealmResults<RealmObject>) {
realmResults.where().greaterThan("test", 5).findAll() realmResults.where().greaterThan("test", 5).findAll()
} }
fun test2() {
SessionFilterable.LIVE.filter(Realm.getDefaultInstance())
}
} }
// //
//fun MutableList<Filterable>.filter(filter: FilterComponent) : List<Filterable> { //fun MutableList<Filterable>.filter(filter: FilterComponent) : List<Filterable> {

Loading…
Cancel
Save