|
|
|
@ -17,11 +17,12 @@ import net.pokeranalytics.android.ui.view.rowrepresentable.FilterSectionRow |
|
|
|
import net.pokeranalytics.android.ui.view.rowrepresentable.FilterElementRow |
|
|
|
import net.pokeranalytics.android.ui.view.rowrepresentable.FilterElementRow |
|
|
|
import net.pokeranalytics.android.util.extensions.endOfDay |
|
|
|
import net.pokeranalytics.android.util.extensions.endOfDay |
|
|
|
import net.pokeranalytics.android.util.extensions.startOfDay |
|
|
|
import net.pokeranalytics.android.util.extensions.startOfDay |
|
|
|
|
|
|
|
import java.text.DateFormatSymbols |
|
|
|
import java.util.* |
|
|
|
import java.util.* |
|
|
|
import kotlin.collections.ArrayList |
|
|
|
import kotlin.collections.ArrayList |
|
|
|
|
|
|
|
|
|
|
|
fun List<QueryCondition>.name() : String { |
|
|
|
fun List<QueryCondition>.name() : String { |
|
|
|
return this.map { it.id }.joinToString(" / ") |
|
|
|
return this.map { it.label() }.joinToString(" / ") |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//inline fun <reified T : Filterable> List<QueryCondition>.query(realm: Realm): RealmQuery<T> { |
|
|
|
//inline fun <reified T : Filterable> List<QueryCondition>.query(realm: Realm): RealmQuery<T> { |
|
|
|
@ -43,7 +44,11 @@ inline fun <reified T : Filterable> List<QueryCondition>.queryWith(query: RealmQ |
|
|
|
* A new type should also set the expected numericValues required in the [filterValuesExpectedKeys] |
|
|
|
* A new type should also set the expected numericValues required in the [filterValuesExpectedKeys] |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
sealed class QueryCondition : FilterElementRow { |
|
|
|
interface Labelable { |
|
|
|
|
|
|
|
fun label() : String |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sealed class QueryCondition : FilterElementRow, Labelable { |
|
|
|
|
|
|
|
|
|
|
|
interface Valuable <T : ArrayList<T>> { |
|
|
|
interface Valuable <T : ArrayList<T>> { |
|
|
|
var values: ArrayList<T>? |
|
|
|
var values: ArrayList<T>? |
|
|
|
@ -107,6 +112,14 @@ sealed class QueryCondition : FilterElementRow { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun label(): String { |
|
|
|
|
|
|
|
return when (this) { |
|
|
|
|
|
|
|
is YEAR -> "$intValue" |
|
|
|
|
|
|
|
is MONTH -> DateFormatSymbols.getInstance(Locale.getDefault()).months[intValue] |
|
|
|
|
|
|
|
else -> baseId |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
override var filterSectionRow: FilterSectionRow = FilterSectionRow.CASH_TOURNAMENT |
|
|
|
override var filterSectionRow: FilterSectionRow = FilterSectionRow.CASH_TOURNAMENT |
|
|
|
|
|
|
|
|
|
|
|
open class OperationQueryCondition : QueryCondition(), asDoubleValue { |
|
|
|
open class OperationQueryCondition : QueryCondition(), asDoubleValue { |
|
|
|
|