diff --git a/app/src/main/java/net/pokeranalytics/android/model/Criteria.kt b/app/src/main/java/net/pokeranalytics/android/model/Criteria.kt index 0ac16179..a264c901 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/Criteria.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/Criteria.kt @@ -93,8 +93,7 @@ sealed class Criteria { query.map { it.blinds?.let { stake -> blinds.add(QueryCondition.BLIND().apply { - blind = stake - hasDefaultCurrency = it.hasDefaultCurrency + stringValues = arrayListOf(stake) }) } } diff --git a/app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt b/app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt index cc524dff..86f7ad56 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt @@ -86,7 +86,6 @@ sealed class QueryCondition : FilterElementRow { } interface asListOfDouble { var doubleValues : ArrayList } - interface asListOfBoolean { var booleanValues : ArrayList } interface asListOfString { var stringValues : ArrayList } interface asDateValue { var dateValue: Date @@ -147,7 +146,7 @@ sealed class QueryCondition : FilterElementRow { return when (this) { is StaticDataQueryCondition -> label() is QueryDataCondition<*> -> label() - is BLIND -> this.blind!! + is BLIND -> label() else -> baseId } } @@ -248,12 +247,20 @@ sealed class QueryCondition : FilterElementRow { } } - class BLIND: QueryCondition(), asListOfString, asListOfBoolean { - var blind: String? = null - var hasDefaultCurrency: Boolean = false - override var booleanValues = ArrayList() + class BLIND: QueryCondition(), asListOfString { override var stringValues = ArrayList() - } + + 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_SESSIONS: SingleValueQueryCondition() @@ -355,31 +362,9 @@ sealed class QueryCondition : FilterElementRow { } realmQuery } - is BLIND -> { - val blinds: Array = stringValues.toTypedArray() - val hasDefaultCurrency: Array = 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 BLIND -> realmQuery.`in`(fieldName, stringValues.toTypedArray()) is QueryDataCondition<*> -> realmQuery.`in`(fieldName, stringValues.toTypedArray()) - is StaticDataQueryCondition -> { - realmQuery.`in`(fieldName, intValues.toTypedArray()) - } + is StaticDataQueryCondition -> realmQuery.`in`(fieldName, intValues.toTypedArray()) is DateQuery -> { if (this is Less) { realmQuery.lessThanOrEqualTo(fieldName, dateValue) @@ -444,10 +429,7 @@ sealed class QueryCondition : FilterElementRow { is asListOfDouble -> filterCondition.doubleValues.map { doubleValues.add(it) } is QueryDataCondition<*> -> filterCondition.ids.map { stringValues.add(it) } is DateQuery -> dateValue = filterCondition.date - is BLIND -> { - filterCondition.blinds.map { stringValues.add(it) } - filterCondition.hasDefaultCurrency.map { booleanValues.add(it) } - } + is BLIND -> filterCondition.blinds.map { stringValues.add(it) } } } diff --git a/app/src/main/java/net/pokeranalytics/android/model/migrations/PokerAnalyticsMigration.kt b/app/src/main/java/net/pokeranalytics/android/model/migrations/PokerAnalyticsMigration.kt index 7bce2eec..c9d63922 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/migrations/PokerAnalyticsMigration.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/migrations/PokerAnalyticsMigration.kt @@ -56,10 +56,6 @@ class PokerAnalyticsMigration : RealmMigration { it.addField("blinds", String::class.java) } - schema.get("FilterCondition")?.let { - it.addRealmListField("booleanValues", Boolean::class.java).setNullable("booleanValues", true) - } - schema.get("FilterCondition")?.let { it.removeField("blindValues") } diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/FilterCondition.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/FilterCondition.kt index 7fd481ed..0d86f3f3 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/FilterCondition.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/FilterCondition.kt @@ -21,20 +21,6 @@ open class FilterCondition() : RealmObject() { is QueryCondition.asDateValue -> { this.dateValue = row.dateValue } - is QueryCondition.BLIND -> { - //TODO refactor raz - this.stringValues = RealmList().apply { - this.addAll(filterElementRows.map { - (it as QueryCondition.BLIND).blind - - }) - } - this.booleanValues = RealmList().apply { - this.addAll(filterElementRows.map { - (it as QueryCondition.BLIND).hasDefaultCurrency - }) - } - } is QueryCondition.asListOfString -> { this.stringValues = RealmList().apply { this.addAll(filterElementRows.map { @@ -64,7 +50,6 @@ open class FilterCondition() : RealmObject() { private var numericValues: RealmList? = null private var dateValue: Date? = null private var stringValues: RealmList? = null - private var booleanValues: RealmList? = null val ids: Array get() = stringValues?.toTypedArray() ?: throw PokerAnalyticsException.FilterElementExpectedValueMissing @@ -72,26 +57,9 @@ open class FilterCondition() : RealmObject() { val blinds: Array get() = stringValues?.toTypedArray() ?: throw PokerAnalyticsException.FilterElementExpectedValueMissing - val hasDefaultCurrency: Array - get() = booleanValues?.toTypedArray() ?: throw PokerAnalyticsException.FilterElementExpectedValueMissing - val date: Date get() = dateValue ?: throw PokerAnalyticsException.FilterElementExpectedValueMissing - - val intValues: Array - 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 get() = numericValues?.toTypedArray() ?: throw PokerAnalyticsException.FilterElementExpectedValueMissing } diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt index b6362de8..0b1e53bb 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt @@ -491,11 +491,6 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat return NULL_TEXT } - val hasDefaultCurrency: Boolean - get() { - return bankroll?.currency?.code == null - } - val currency: Currency get() { return bankroll?.currency?.code?.let {