Merge branch 'dev' of gitlab.com:stax-river/poker-analytics into dev

feature/top10
Laurent 7 years ago
commit c5e8db8e05
  1. 3
      app/src/main/java/net/pokeranalytics/android/model/Criteria.kt
  2. 50
      app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt
  3. 4
      app/src/main/java/net/pokeranalytics/android/model/migrations/PokerAnalyticsMigration.kt
  4. 32
      app/src/main/java/net/pokeranalytics/android/model/realm/FilterCondition.kt
  5. 5
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt

@ -93,8 +93,7 @@ sealed class Criteria {
query.map { query.map {
it.blinds?.let { stake -> it.blinds?.let { stake ->
blinds.add(QueryCondition.BLIND().apply { blinds.add(QueryCondition.BLIND().apply {
blind = stake stringValues = arrayListOf(stake)
hasDefaultCurrency = it.hasDefaultCurrency
}) })
} }
} }

@ -86,7 +86,6 @@ sealed class QueryCondition : FilterElementRow {
} }
interface asListOfDouble { var doubleValues : ArrayList<Double> } interface asListOfDouble { var doubleValues : ArrayList<Double> }
interface asListOfBoolean { var booleanValues : ArrayList<Boolean> }
interface asListOfString { var stringValues : ArrayList<String> } interface asListOfString { var stringValues : ArrayList<String> }
interface asDateValue { interface asDateValue {
var dateValue: Date var dateValue: Date
@ -147,7 +146,7 @@ sealed class QueryCondition : FilterElementRow {
return when (this) { return when (this) {
is StaticDataQueryCondition -> label() is StaticDataQueryCondition -> label()
is QueryDataCondition<*> -> label() is QueryDataCondition<*> -> label()
is BLIND -> this.blind!! is BLIND -> label()
else -> baseId else -> baseId
} }
} }
@ -248,11 +247,19 @@ sealed class QueryCondition : FilterElementRow {
} }
} }
class BLIND: QueryCondition(), asListOfString, asListOfBoolean { class BLIND: QueryCondition(), asListOfString {
var blind: String? = null
var hasDefaultCurrency: Boolean = false
override var booleanValues = ArrayList<Boolean>()
override var stringValues = ArrayList<String>() override var stringValues = ArrayList<String>()
fun label(): String {
val completeLabel = when (stringValues.size) {
0 -> return NULL_TEXT
1,2 -> {
return stringValues.map { it }.joinToString(", ")
}
else -> "${stringValues.size} $baseId"
}
return completeLabel
}
} }
class LAST_GAMES: SingleValueQueryCondition() class LAST_GAMES: SingleValueQueryCondition()
@ -355,31 +362,9 @@ sealed class QueryCondition : FilterElementRow {
} }
realmQuery realmQuery
} }
is BLIND -> { is BLIND -> realmQuery.`in`(fieldName, stringValues.toTypedArray())
val blinds: Array<String> = stringValues.toTypedArray()
val hasDefaultCurrency: Array<Boolean> = booleanValues.toTypedArray()
//realmQuery.`in`(fieldName, blinds)
blinds.forEachIndexed { index, s ->
val isUsingDefaultCurrency = hasDefaultCurrency[index]
realmQuery.beginGroup()
if (isUsingDefaultCurrency) {
realmQuery.endsWith(fieldName, s)
.and()
.isNull("bankroll.currency.code")
} else {
realmQuery.equalTo(fieldName, s)
}
.endGroup()
if (index < blinds.size - 1) {
realmQuery.or()
}
}
realmQuery
}
is QueryDataCondition<*> -> realmQuery.`in`(fieldName, stringValues.toTypedArray()) is QueryDataCondition<*> -> realmQuery.`in`(fieldName, stringValues.toTypedArray())
is StaticDataQueryCondition -> { is StaticDataQueryCondition -> realmQuery.`in`(fieldName, intValues.toTypedArray())
realmQuery.`in`(fieldName, intValues.toTypedArray())
}
is DateQuery -> { is DateQuery -> {
if (this is Less) { if (this is Less) {
realmQuery.lessThanOrEqualTo(fieldName, dateValue) realmQuery.lessThanOrEqualTo(fieldName, dateValue)
@ -444,10 +429,7 @@ sealed class QueryCondition : FilterElementRow {
is asListOfDouble -> filterCondition.doubleValues.map { doubleValues.add(it) } is asListOfDouble -> filterCondition.doubleValues.map { doubleValues.add(it) }
is QueryDataCondition<*> -> filterCondition.ids.map { stringValues.add(it) } is QueryDataCondition<*> -> filterCondition.ids.map { stringValues.add(it) }
is DateQuery -> dateValue = filterCondition.date is DateQuery -> dateValue = filterCondition.date
is BLIND -> { is BLIND -> filterCondition.blinds.map { stringValues.add(it) }
filterCondition.blinds.map { stringValues.add(it) }
filterCondition.hasDefaultCurrency.map { booleanValues.add(it) }
}
} }
} }

@ -56,10 +56,6 @@ class PokerAnalyticsMigration : RealmMigration {
it.addField("blinds", String::class.java) it.addField("blinds", String::class.java)
} }
schema.get("FilterCondition")?.let {
it.addRealmListField("booleanValues", Boolean::class.java).setNullable("booleanValues", true)
}
schema.get("FilterCondition")?.let { schema.get("FilterCondition")?.let {
it.removeField("blindValues") it.removeField("blindValues")
} }

@ -21,20 +21,6 @@ open class FilterCondition() : RealmObject() {
is QueryCondition.asDateValue -> { is QueryCondition.asDateValue -> {
this.dateValue = row.dateValue this.dateValue = row.dateValue
} }
is QueryCondition.BLIND -> {
//TODO refactor raz
this.stringValues = RealmList<String>().apply {
this.addAll(filterElementRows.map {
(it as QueryCondition.BLIND).blind
})
}
this.booleanValues = RealmList<Boolean>().apply {
this.addAll(filterElementRows.map {
(it as QueryCondition.BLIND).hasDefaultCurrency
})
}
}
is QueryCondition.asListOfString -> { is QueryCondition.asListOfString -> {
this.stringValues = RealmList<String>().apply { this.stringValues = RealmList<String>().apply {
this.addAll(filterElementRows.map { this.addAll(filterElementRows.map {
@ -64,7 +50,6 @@ open class FilterCondition() : RealmObject() {
private var numericValues: RealmList<Double>? = null private var numericValues: RealmList<Double>? = null
private var dateValue: Date? = null private var dateValue: Date? = null
private var stringValues: RealmList<String>? = null private var stringValues: RealmList<String>? = null
private var booleanValues: RealmList<Boolean>? = null
val ids: Array<String> val ids: Array<String>
get() = stringValues?.toTypedArray() ?: throw PokerAnalyticsException.FilterElementExpectedValueMissing get() = stringValues?.toTypedArray() ?: throw PokerAnalyticsException.FilterElementExpectedValueMissing
@ -72,26 +57,9 @@ open class FilterCondition() : RealmObject() {
val blinds: Array<String> val blinds: Array<String>
get() = stringValues?.toTypedArray() ?: throw PokerAnalyticsException.FilterElementExpectedValueMissing get() = stringValues?.toTypedArray() ?: throw PokerAnalyticsException.FilterElementExpectedValueMissing
val hasDefaultCurrency: Array<Boolean>
get() = booleanValues?.toTypedArray() ?: throw PokerAnalyticsException.FilterElementExpectedValueMissing
val date: Date val date: Date
get() = dateValue ?: throw PokerAnalyticsException.FilterElementExpectedValueMissing get() = dateValue ?: throw PokerAnalyticsException.FilterElementExpectedValueMissing
val intValues: Array<Int>
get() = numericValues?.map {
println("test double: $it")
it.toInt()
}?.toTypedArray() ?: throw PokerAnalyticsException.FilterElementExpectedValueMissing
val doubleValue: Double
get() = numericValues?.first() ?: throw PokerAnalyticsException.FilterElementExpectedValueMissing
val intValue: Int
get() = numericValues?.first()?.toInt() ?: throw PokerAnalyticsException.FilterElementExpectedValueMissing
val doubleValues: Array<Double> val doubleValues: Array<Double>
get() = numericValues?.toTypedArray() ?: throw PokerAnalyticsException.FilterElementExpectedValueMissing get() = numericValues?.toTypedArray() ?: throw PokerAnalyticsException.FilterElementExpectedValueMissing
} }

@ -491,11 +491,6 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
return NULL_TEXT return NULL_TEXT
} }
val hasDefaultCurrency: Boolean
get() {
return bankroll?.currency?.code == null
}
val currency: Currency val currency: Currency
get() { get() {
return bankroll?.currency?.code?.let { return bankroll?.currency?.code?.let {

Loading…
Cancel
Save