|
|
|
|
@ -16,7 +16,6 @@ import net.pokeranalytics.android.model.Criteria.TournamentFees.comparison |
|
|
|
|
import net.pokeranalytics.android.model.Criteria.TournamentNames.comparison |
|
|
|
|
import net.pokeranalytics.android.model.Criteria.TournamentTypes.comparison |
|
|
|
|
import net.pokeranalytics.android.model.Criteria.TransactionTypes.comparison |
|
|
|
|
import net.pokeranalytics.android.model.filter.FilterHelper |
|
|
|
|
import net.pokeranalytics.android.model.filter.Query |
|
|
|
|
import net.pokeranalytics.android.model.filter.QueryCondition |
|
|
|
|
import net.pokeranalytics.android.model.interfaces.NameManageable |
|
|
|
|
@ -64,7 +63,7 @@ sealed class Criteria(override var uniqueIdentifier: Int) : IntIdentifiable, Row |
|
|
|
|
if (this is ListCustomFields) { |
|
|
|
|
val objects = mutableListOf<QueryCondition.CustomFieldListQuery>() |
|
|
|
|
val realm = Realm.getDefaultInstance() |
|
|
|
|
realm.where<CustomFieldEntry>().equalTo("customField.id", this.customField.id).findAll().forEach { |
|
|
|
|
realm.where<CustomFieldEntry>().equalTo("customField.id", this.customFieldId).findAll().forEach { |
|
|
|
|
objects.add(QueryCondition.CustomFieldListQuery(it)) |
|
|
|
|
} |
|
|
|
|
objects.sorted() |
|
|
|
|
@ -75,7 +74,8 @@ sealed class Criteria(override var uniqueIdentifier: Int) : IntIdentifiable, Row |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
abstract class SimpleCriteria(private val conditions: List<QueryCondition>, uniqueIdentifier: Int) : Criteria(uniqueIdentifier) { |
|
|
|
|
abstract class SimpleCriteria(private val conditions: List<QueryCondition>, uniqueIdentifier: Int) : |
|
|
|
|
Criteria(uniqueIdentifier) { |
|
|
|
|
fun comparison(): List<Query> { |
|
|
|
|
return conditions.map { Query(it) } |
|
|
|
|
} |
|
|
|
|
@ -86,13 +86,16 @@ sealed class Criteria(override var uniqueIdentifier: Int) : IntIdentifiable, Row |
|
|
|
|
|
|
|
|
|
if (this is ValueCustomFields) { |
|
|
|
|
val realm = Realm.getDefaultInstance() |
|
|
|
|
val distincts = realm.where<CustomFieldEntry>().equalTo("customField.id", this.customField.id).distinct("value").findAll().sort("value", Sort.ASCENDING) |
|
|
|
|
val distincts = |
|
|
|
|
realm.where<CustomFieldEntry>().equalTo("customField.id", this.customFieldId).distinct("value") |
|
|
|
|
.findAll().sort("value", Sort.ASCENDING) |
|
|
|
|
realm.close() |
|
|
|
|
|
|
|
|
|
val objects = mutableListOf<QueryCondition.CustomFieldNumberQuery>() |
|
|
|
|
distincts.distinct().forEach { |
|
|
|
|
val condition: QueryCondition.CustomFieldNumberQuery = QueryCondition.CustomFieldNumberQuery().apply { |
|
|
|
|
this.customFieldId = this@ListCriteria.customField.id |
|
|
|
|
val condition: QueryCondition.CustomFieldNumberQuery = |
|
|
|
|
QueryCondition.CustomFieldNumberQuery().apply { |
|
|
|
|
this.customFieldId = this@ListCriteria.customFieldId |
|
|
|
|
listOfValues = arrayListOf(it.value) |
|
|
|
|
} |
|
|
|
|
objects.add(condition) |
|
|
|
|
@ -155,8 +158,13 @@ sealed class Criteria(override var uniqueIdentifier: Int) : IntIdentifiable, Row |
|
|
|
|
object TournamentFees : ListCriteria(18) |
|
|
|
|
object Cash : SimpleCriteria(listOf(QueryCondition.IsCash), 19) |
|
|
|
|
object Tournament : SimpleCriteria(listOf(QueryCondition.IsTournament), 20) |
|
|
|
|
data class ListCustomFields(var customField: CustomField) : RealmCriteria(21) |
|
|
|
|
data class ValueCustomFields(var customField: CustomField) : ListCriteria(22) |
|
|
|
|
data class ListCustomFields(override var customField: CustomField) : RealmCriteria(21), CustomFieldCriteria { |
|
|
|
|
override var customFieldId: String = customField.id |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
data class ValueCustomFields(override var customField: CustomField) : ListCriteria(22), CustomFieldCriteria { |
|
|
|
|
override var customFieldId: String = customField.id |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
val queries: List<Query> |
|
|
|
|
get() { |
|
|
|
|
@ -308,3 +316,8 @@ sealed class Criteria(override var uniqueIdentifier: Int) : IntIdentifiable, Row |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
interface CustomFieldCriteria { |
|
|
|
|
var customField: CustomField |
|
|
|
|
var customFieldId: String |
|
|
|
|
} |