some clean up

feature/top10
Razmig Sarkissian 7 years ago
parent d1a4461073
commit f67429b678
  1. 8
      app/src/main/java/net/pokeranalytics/android/model/TableSize.kt
  2. 121
      app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt
  3. 2
      app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterElementRow.kt
  4. 2
      app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterSectionRow.kt

@ -14,6 +14,14 @@ class TableSize(var numberOfPlayer: Int, var rowViewType: Int = RowViewType.TITL
} }
} }
override fun getDisplayName(): String {
return if (this.numberOfPlayer == 2) {
return "HU"
} else {
"${this.numberOfPlayer}-max"
}
}
override val resId: Int? override val resId: Int?
get() { get() {
return if (this.numberOfPlayer == 2) { return if (this.numberOfPlayer == 2) {

@ -50,6 +50,37 @@ inline fun <reified T : Filterable> List<QueryCondition>.queryWith(query: RealmQ
sealed class QueryCondition : FilterElementRow { sealed class QueryCondition : FilterElementRow {
companion object {
fun valueOf(name:String) : QueryCondition {
val kClass = Class.forName("${QueryCondition::class.qualifiedName}$$name").kotlin
val instance = kClass.objectInstance ?: kClass.java.newInstance()
return instance as QueryCondition
}
inline fun <reified T:Identifiable>getInstance(): QueryCondition {
return when (T::class.java) {
Bankroll::class.java -> BANKROLL()
Game::class.java -> GAME()
Location::class.java -> LOCATION()
TournamentName::class.java -> TOURNAMENT_NAME()
TournamentFeature::class.java -> ANY_TOURNAMENT_FEATURES()
else -> throw PokerAnalyticsException.QueryTypeUnhandled
}
}
inline fun < reified T: Filterable, reified S: QueryCondition>distinct(): RealmResults<T>? {
FilterHelper.fieldNameForQueryType<T>(S::class.java)?.let {
val realm = Realm.getDefaultInstance()
val distincts = realm.where<T>().distinct(it).findAll().sort(it, Sort.ASCENDING)
realm.close()
return distincts
}
return null
}
}
interface Valuable <T : ArrayList<T>> { interface Valuable <T : ArrayList<T>> {
var values: ArrayList<T>? var values: ArrayList<T>?
} }
@ -123,14 +154,6 @@ sealed class QueryCondition : FilterElementRow {
override var filterSectionRow: FilterSectionRow = FilterSectionRow.CASH_TOURNAMENT override var filterSectionRow: FilterSectionRow = FilterSectionRow.CASH_TOURNAMENT
open class OperationQueryCondition : QueryCondition(), asDoubleValue {
override var doubleValues = ArrayList<Double>()
}
open class BetweenQueryCondition : QueryCondition(), asListOfDouble {
override var doubleValues = ArrayList<Double>()
}
abstract class QueryDataCondition < T: NameManageable > : QueryCondition(), asListOfString { abstract class QueryDataCondition < T: NameManageable > : QueryCondition(), asListOfString {
fun setObject(dataObject: T) { fun setObject(dataObject: T) {
this.dataObject = dataObject this.dataObject = dataObject
@ -161,39 +184,6 @@ sealed class QueryCondition : FilterElementRow {
} }
} }
companion object {
fun valueOf(name:String) : QueryCondition {
val kClass = Class.forName("${QueryCondition::class.qualifiedName}$$name").kotlin
val instance = kClass.objectInstance ?: kClass.java.newInstance()
return instance as QueryCondition
}
inline fun <reified T:Identifiable>getInstance(): QueryCondition {
return when (T::class.java) {
Bankroll::class.java -> BANKROLL()
Game::class.java -> GAME()
Location::class.java -> LOCATION()
TournamentName::class.java -> TOURNAMENT_NAME()
TournamentFeature::class.java -> ANY_TOURNAMENT_FEATURES()
else -> throw PokerAnalyticsException.QueryTypeUnhandled
}
}
inline fun < reified T: Filterable, reified S: QueryCondition>distinct(): RealmResults<T>? {
FilterHelper.fieldNameForQueryType<T>(S::class.java)?.let {
val realm = Realm.getDefaultInstance()
val distincts = realm.where<T>().distinct(it).findAll().sort(it, Sort.ASCENDING)
realm.close()
return distincts
}
return null
}
}
//open val name: String = this::class.simpleName ?: throw PokerAnalyticsException.FilterElementUnknownName
abstract class SingleValueQueryCondition : QueryCondition(), asIntValue { abstract class SingleValueQueryCondition : QueryCondition(), asIntValue {
override var doubleValues = ArrayList<Double>() override var doubleValues = ArrayList<Double>()
} }
@ -201,7 +191,7 @@ sealed class QueryCondition : FilterElementRow {
abstract class StaticDataQueryCondition : QueryCondition(), asListOfInt { abstract class StaticDataQueryCondition : QueryCondition(), asListOfInt {
var data : RowRepresentable? = null var data : RowRepresentable? = null
override var doubleValues = ArrayList<Double>() override var doubleValues = ArrayList<Double>()
abstract fun labelForValue(value:Int): String? abstract fun labelForValue(value:Int): String
fun label(): String { fun label(): String {
return when (intValues.size) { return when (intValues.size) {
@ -212,6 +202,23 @@ sealed class QueryCondition : FilterElementRow {
} }
} }
open class OperationQueryCondition : QueryCondition(), asDoubleValue {
override var doubleValues = ArrayList<Double>()
}
open class BetweenQueryCondition : QueryCondition(), asListOfDouble {
override var doubleValues = ArrayList<Double>()
}
open class DateQuery: QueryCondition(), asDateValue {
override var dateValue: Date = Date()
override val showTime: Boolean = false
}
open class TimeQuery: DateQuery() {
override val showTime: Boolean = true
}
object LIVE : QueryCondition() object LIVE : QueryCondition()
object CASH : QueryCondition() object CASH : QueryCondition()
object ONLINE : QueryCondition() object ONLINE : QueryCondition()
@ -224,22 +231,14 @@ sealed class QueryCondition : FilterElementRow {
class LOCATION: QueryDataCondition<Location>() { override val entity: Class<Location> = Location::class.java } class LOCATION: QueryDataCondition<Location>() { override val entity: Class<Location> = Location::class.java }
class LIMIT: StaticDataQueryCondition() { class LIMIT: StaticDataQueryCondition() {
override fun labelForValue(value: Int): String? { override fun labelForValue(value: Int): String {
return Limit.values()[value].longName return Limit.values()[value].getDisplayName()
} }
} }
class TABLE_SIZE: StaticDataQueryCondition() { class TABLE_SIZE: StaticDataQueryCondition() {
val tableSize: TableSize get() { return TableSize(intValues.first()) } override fun labelForValue(value: Int): String {
//TODO dynamize this return TableSize(value).getDisplayName()
override val resId: Int? = R.string.max
override fun localizedTitle(context: Context): String {
return this.tableSize.localizedTitle(context)
}
override fun labelForValue(value: Int): String? {
return null
} }
} }
@ -287,18 +286,8 @@ sealed class QueryCondition : FilterElementRow {
doubleValues.add(rightValue) doubleValues.add(rightValue)
} }
} }
class MIN_RE_BUY: OperationQueryCondition(), More class MIN_RE_BUY: OperationQueryCondition(), More, Amount
class MAX_RE_BUY: OperationQueryCondition(), Less class MAX_RE_BUY: OperationQueryCondition(), Less, Amount
// Dates
open class DateQuery: QueryCondition(), asDateValue {
override var dateValue: Date = Date()
override val showTime: Boolean = false
}
open class TimeQuery: DateQuery() {
override val showTime: Boolean = true
}
class STARTED_FROM_DATE: DateQuery() class STARTED_FROM_DATE: DateQuery()
class STARTED_TO_DATE: DateQuery(), Less class STARTED_TO_DATE: DateQuery(), Less

@ -49,7 +49,7 @@ interface FilterElementRow : RowRepresentable {
is QueryCondition.MAX_RE_BUY -> R.string.maximum is QueryCondition.MAX_RE_BUY -> R.string.maximum
is QueryCondition.More -> R.string.more_than is QueryCondition.More -> R.string.more_than
is QueryCondition.Less -> R.string.less_than is QueryCondition.Less -> R.string.less_than
else -> super.resId else -> null
} }
} }

@ -107,7 +107,7 @@ enum class FilterSectionRow(override val resId: Int?) : RowRepresentable {
BLIND -> Criteria.Blinds.queryConditions BLIND -> Criteria.Blinds.queryConditions
CASH_RE_BUY_COUNT -> arrayListOf( CASH_RE_BUY_COUNT -> arrayListOf(
QueryCondition.MAX_RE_BUY(), QueryCondition.MAX_RE_BUY(),
QueryCondition.MIN_RE_BUY() QueryCondition.MIN_RE_BUY() as QueryCondition
) )
// Tournament // Tournament

Loading…
Cancel
Save