add month and year comparator

feature/top10
Razmig Sarkissian 7 years ago
parent 9c5dad9cf6
commit 8de559b2f7
  1. 17
      app/src/main/java/net/pokeranalytics/android/model/comparison/Comparator.kt
  2. 14
      app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt

@ -2,21 +2,38 @@ package net.pokeranalytics.android.model.comparison
import io.realm.Realm
import io.realm.RealmQuery
import io.realm.Sort
import io.realm.kotlin.where
import net.pokeranalytics.android.exceptions.PokerAnalyticsException
import net.pokeranalytics.android.model.filter.Filterable
import net.pokeranalytics.android.model.filter.QueryCondition
import net.pokeranalytics.android.model.realm.Session
enum class Comparator {
DAY_OF_WEEK,
MONTH_OF_YEAR,
MONTH,
YEAR,
BLIND,
;
val queryConditions: List<QueryCondition>
get() {
return when (this) {
MONTH_OF_YEAR -> List(12) { index-> QueryCondition.MONTH().apply { setMonth(index+1) } }
DAY_OF_WEEK -> listOf()
YEAR -> {
val years = arrayListOf<QueryCondition.YEAR>()
val realm = Realm.getDefaultInstance()
val distinctYears = realm.where<Session>().distinct("year").findAll().sort("year", Sort.DESCENDING)
distinctYears.forEach { session ->
session.year?.let { year ->
years.add(QueryCondition.YEAR().apply { setYear(year) })
}
}
realm.close()
years
}
else -> throw PokerAnalyticsException.QueryTypeUnhandled
}
}

@ -81,8 +81,16 @@ sealed class QueryCondition(var operator: Operator? = null) {
class ENDED_FROM_DATE: QueryCondition()
class ENDED_TO_DATE: QueryCondition()
class DAY_OF_WEEK: QueryCondition()
class MONTH: QueryCondition()
class YEAR: QueryCondition()
class MONTH: QueryCondition() {
fun setMonth(month:Int) {
this.valueMap = mapOf("month" to month)
}
}
class YEAR: QueryCondition() {
fun setYear(year:Int) {
this.valueMap = mapOf("year" to year)
}
}
object WEEK_DAY: QueryCondition()
object WEEK_END: QueryCondition()
object TODAY: QueryCondition()
@ -114,7 +122,7 @@ sealed class QueryCondition(var operator: Operator? = null) {
}
return field
}
private set
protected set
private val filterValuesExpectedKeys : Array<String>?
get() {

Loading…
Cancel
Save