Improve Duration filters

feature/top10
Aurelien Hubert 7 years ago
parent 2160c469a8
commit 78cb6a8dfe
  1. 10
      app/src/main/java/net/pokeranalytics/android/ui/fragment/FilterDetailsFragment.kt
  2. 20
      app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterElementRow.kt
  3. 2
      app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterSectionRow.kt

@ -82,6 +82,12 @@ open class FilterDetailsFragment : PokerAnalyticsFragment(), StaticRowRepresenta
val data = row.editingDescriptors(mapOf("hours" to hours, "minutes" to minutes))
BottomSheetFragment.create(fragmentManager, row, this, data, true)
}
is FilterElementRow.DurationLessThan -> {
val hours = if (row.minutes / 60 > 0) (row.minutes / 60).toString() else ""
val minutes = if (row.minutes % 60 > 0) (row.minutes % 60).toString() else ""
val data = row.editingDescriptors(mapOf("hours" to hours, "minutes" to minutes))
BottomSheetFragment.create(fragmentManager, row, this, data, true)
}
else -> {
val oldRows = ArrayList<RowRepresentable>()
@ -129,7 +135,7 @@ open class FilterDetailsFragment : PokerAnalyticsFragment(), StaticRowRepresenta
is FilterElementRow.PastDays -> if (row.lastDays > 0) row.lastDays.toString() else NULL_TEXT
is FilterElementRow.From -> row.date.shortDate()
is FilterElementRow.To -> row.date.shortDate()
is FilterElementRow.DurationMoreThan -> row.minutes.toMinutes(requireContext())
is FilterElementRow.TimeFilterElementRow -> row.minutes.toMinutes(requireContext())
else -> super.stringForRow(row)
}
}
@ -146,7 +152,7 @@ open class FilterDetailsFragment : PokerAnalyticsFragment(), StaticRowRepresenta
is FilterElementRow.From -> row.date = if (value != null && value is Date) value else Date()
is FilterElementRow.To -> row.date = if (value != null && value is Date) value else Date()
is FilterElementRow.PastDays -> row.lastDays = if (value != null && value is String) value.toInt() else 0
is FilterElementRow.DurationMoreThan -> {
is FilterElementRow.TimeFilterElementRow -> {
if (value is ArrayList<*>) {
val hours = try {
(value[0] as String? ?: "0").toInt()

@ -46,9 +46,15 @@ sealed class FilterElementRow : RowRepresentable {
}
}
open class QuantityFilterElementRow : FilterElementRow()
open class QuantityFilterElementRow(var value: Double = 0.0) : FilterElementRow()
open class TimeFilterElementRow : QuantityFilterElementRow() {
var minutes = value.toInt()
}
open class MoreFilterElementRow : QuantityFilterElementRow()
open class LessFilterElementRow : QuantityFilterElementRow()
open class MoreTimeFilterElementRow : TimeFilterElementRow()
open class LessTimeFilterElementRow : TimeFilterElementRow()
data class Blind(var sb: Double? = null, var bb: Double? = null, var code: String? = null) : FilterElementRow()
@ -67,10 +73,10 @@ sealed class FilterElementRow : RowRepresentable {
data class AllTournamentFeature(val tournamentFeature: Manageable) : DataFilterElementRow(tournamentFeature)
data class AnyTournamentFeature(val tournamentFeature: Manageable) : DataFilterElementRow(tournamentFeature)
data class ResultMoreThan(var value: Double) : MoreFilterElementRow()
data class ResultLessThan(var value: Double) : LessFilterElementRow()
data class DurationMoreThan(var minutes: Int) : MoreFilterElementRow()
data class DurationLessThan(var minutes: Int) : LessFilterElementRow()
object ResultMoreThan : MoreFilterElementRow()
object ResultLessThan : LessFilterElementRow()
object DurationMoreThan : MoreTimeFilterElementRow()
object DurationLessThan : LessTimeFilterElementRow()
lateinit var filterSectionRow: FilterSectionRow
@ -150,8 +156,8 @@ sealed class FilterElementRow : RowRepresentable {
is Weekend -> R.string.weekend
is PastDays -> R.string.period_in_days
is Blind -> R.string.blinds
is MoreFilterElementRow -> R.string.more_than
is LessFilterElementRow -> R.string.less_than
is MoreFilterElementRow, is MoreTimeFilterElementRow -> R.string.more_than
is LessFilterElementRow, is LessTimeFilterElementRow -> R.string.less_than
else -> null
}
}

@ -154,7 +154,7 @@ enum class FilterSectionRow(override val resId: Int?) : RowRepresentable {
MULTI_PLAYER -> arrayListOf()
SESSION_DURATION -> arrayListOf(DurationMoreThan(0), DurationLessThan(0))
SESSION_DURATION -> arrayListOf(DurationMoreThan, DurationLessThan)
RANGE -> arrayListOf(From(Date()), To(Date()))
VALUE -> arrayListOf()

Loading…
Cancel
Save