Improve filter management (Limit, table size)

feature/top10
Aurelien Hubert 7 years ago
parent f40bc3325c
commit 8f05a9ca9e
  1. 1
      app/src/main/java/net/pokeranalytics/android/model/realm/Filter.kt
  2. 8
      app/src/main/java/net/pokeranalytics/android/model/realm/FilterElement.kt
  3. 18
      app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterElementRow.kt

@ -99,6 +99,7 @@ open class Filter : RealmObject() {
val filtered = filterElements.filter {
it.filterName == filterElementRow.filterName
}
if (filtered.isEmpty()) {
return false
}

@ -7,7 +7,6 @@ import net.pokeranalytics.android.model.filter.QueryType
import net.pokeranalytics.android.ui.view.rowrepresentable.FilterElementRow
import net.pokeranalytics.android.ui.view.rowrepresentable.FilterElementRow.*
import java.util.*
import kotlin.collections.ArrayList
open class FilterElement() : RealmObject() {
@ -26,6 +25,13 @@ open class FilterElement() : RealmObject() {
})
}
}
QueryType.LIMIT, QueryType.TABLE_SIZE -> {
RealmList<String>().apply {
this.addAll(filterElementRows.map {
(it as StaticDataFilterElementRow).id
})
}
}
else -> null
}

@ -30,13 +30,10 @@ sealed class FilterElementRow : RowRepresentable {
val name: String = (data as RowRepresentable).getDisplayName()
}
open class StaticDataFilterElementRow(var row: RowRepresentable) : FilterElementRow() {
open class StaticDataFilterElementRow(var row: RowRepresentable, var id: String) : FilterElementRow() {
override val resId: Int? = row.resId
fun getDataDisplayName() : String {
return row.getDisplayName()
}
val name: String = row.getDisplayName()
fun getDataLocalizedTitle(context: Context): String {
return row.localizedTitle(context)
@ -52,8 +49,8 @@ sealed class FilterElementRow : RowRepresentable {
data class Month(val month: Int) : SingleValueFilterElementRow(month)
data class Day(val day: Int) : SingleValueFilterElementRow(day)
data class PastDays(var lastDays: Int = 0) : FilterElementRow()
data class Limit(val limit: net.pokeranalytics.android.model.Limit) : StaticDataFilterElementRow(limit)
data class TableSize(val tableSize: net.pokeranalytics.android.model.TableSize) : StaticDataFilterElementRow(tableSize)
data class Limit(val limit: net.pokeranalytics.android.model.Limit) : StaticDataFilterElementRow(limit, limit.longName)
data class TableSize(val tableSize: net.pokeranalytics.android.model.TableSize) : StaticDataFilterElementRow(tableSize, tableSize.numberOfPlayer.toString())
data class Bankroll(val bankroll: Manageable) : DataFilterElementRow(bankroll)
data class Game(val game: Manageable) : DataFilterElementRow(game)
data class Location(val location: Manageable) : DataFilterElementRow(location)
@ -112,7 +109,10 @@ sealed class FilterElementRow : RowRepresentable {
is DataFilterElementRow -> filterElements.any {
it.ids.contains(this.id)
}
else -> return true
is StaticDataFilterElementRow ->filterElements.any {
it.ids.contains(this.id)
}
else -> true
}
}
@ -148,7 +148,7 @@ sealed class FilterElementRow : RowRepresentable {
override fun getDisplayName(): String {
return when (this) {
is DataFilterElementRow -> this.name
is StaticDataFilterElementRow -> this.getDataDisplayName()
is StaticDataFilterElementRow -> this.name
else -> super.getDisplayName()
}
}

Loading…
Cancel
Save