From ff3e4608d38692003295c2c251c187ef35734385 Mon Sep 17 00:00:00 2001 From: Razmig Sarkissian Date: Fri, 19 Apr 2019 09:55:27 +0200 Subject: [PATCH] fix issue with filter display --- .../net/pokeranalytics/android/model/Criteria.kt | 2 +- .../android/model/filter/QueryCondition.kt | 16 ++++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) 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 9175d734..2fdbdd6b 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/Criteria.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/Criteria.kt @@ -120,7 +120,7 @@ sealed class Criteria { val objects = arrayListOf() values.forEach { objects.add((S::class.java.newInstance()).apply { - intValues.add(it) + intValues = arrayListOf(it) }) } return objects 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 3c78df9a..0ea2b90e 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 @@ -45,12 +45,16 @@ inline fun List.queryWith(query: RealmQ sealed class QueryCondition : FilterElementRow { + interface Valuable > { + var values: ArrayList? + } + interface asListOfDouble { var doubleValues : ArrayList } interface asListOfBoolean { var booleanValues : ArrayList } interface asListOfString { var stringValues : ArrayList } interface asDateValue { var dateValue: Date - var showTime: Boolean + val showTime: Boolean } interface asListOfInt : asListOfDouble { @@ -61,13 +65,13 @@ sealed class QueryCondition : FilterElementRow { interface asIntValue : asListOfInt { var intValue: Int - get() { return intValues.first() } + get() { return intValues.firstOrNull() ?: 0 } set(value) { intValues = arrayListOf(value) } } interface asDoubleValue : asListOfDouble { var doubleValue : Double - get() { return doubleValues.first() } + get() { return doubleValues.firstOrNull() ?: 0.0 } set(value) { doubleValues = arrayListOf(value) } } @@ -183,7 +187,7 @@ sealed class QueryCondition : FilterElementRow { get() { if (intValues.size > 1) { return "multiple" - } else { + } else if (intValues.size > 0) { return Limit.values()[intValues.first()].longName } return "todo" @@ -255,11 +259,11 @@ sealed class QueryCondition : FilterElementRow { // Dates open class DateQuery: QueryCondition(), asDateValue { override var dateValue: Date = Date() - override var showTime: Boolean = false + override val showTime: Boolean = false } open class TimeQuery: DateQuery() { - override var showTime: Boolean = true + override val showTime: Boolean = true } class STARTED_FROM_DATE: DateQuery()