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 { val filtered = filterElements.filter {
it.filterName == filterElementRow.filterName it.filterName == filterElementRow.filterName
} }
if (filtered.isEmpty()) { if (filtered.isEmpty()) {
return false 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 net.pokeranalytics.android.ui.view.rowrepresentable.FilterElementRow.* import net.pokeranalytics.android.ui.view.rowrepresentable.FilterElementRow.*
import java.util.* import java.util.*
import kotlin.collections.ArrayList
open class FilterElement() : RealmObject() { 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 else -> null
} }

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

Loading…
Cancel
Save