fix an issue with more / less filters

dev
Razmig Sarkissian 7 years ago
parent 728d49c383
commit 5e701255a2
  1. 25
      app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt
  2. 9
      app/src/main/java/net/pokeranalytics/android/model/realm/Filter.kt
  3. 1
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  4. 1
      app/src/main/java/net/pokeranalytics/android/ui/fragment/FilterDetailsFragment.kt

@ -87,6 +87,14 @@ sealed class QueryCondition : FilterElementRow {
val baseId = this::class.simpleName ?: throw PokerAnalyticsException.FilterElementUnknownName
val groupId: String
get() {
when (this.operator) {
Operator.MORE, Operator.LESS -> return "${this.operator.name.toLowerCase().capitalize()}$baseId"
}
return baseId
}
val id: List<String> get() {
when (this.operator) {
Operator.MORE, Operator.LESS -> return listOf("$baseId+${this.operator.name}")
@ -164,10 +172,14 @@ sealed class QueryCondition : FilterElementRow {
override fun labelForValue(value: Date): String {
return value.toString()
}
override var listOfValues = ArrayList<Date>()
override var singleValue: Date
get() { return listOfValues.firstOrNull() ?: Date() }
set(value) { listOfValues.add(value) }
set(value) {
listOfValues.removeAll(this.listOfValues)
listOfValues.add(value)
}
override fun updateValueBy(filterCondition: FilterCondition) {
super.updateValueBy(filterCondition)
@ -181,7 +193,10 @@ sealed class QueryCondition : FilterElementRow {
}
override var singleValue: Int
get() { return listOfValues.firstOrNull() ?: 0 }
set(value) { listOfValues.add(value) }
set(value) {
listOfValues.removeAll(this.listOfValues)
listOfValues.add(value)
}
override fun updateValueBy(filterCondition: FilterCondition) {
super.updateValueBy(filterCondition)
@ -398,7 +413,7 @@ sealed class QueryCondition : FilterElementRow {
class Duration: SingleInt() {
var minutes:Int
get() { return singleValue }
set(value) { singleValue = value }
set(value) { listOfValues = arrayListOf(value) }
override val viewType: Int = RowViewType.TITLE_VALUE_CHECK.ordinal
override val bottomSheetType: BottomSheetType = BottomSheetType.DOUBLE_EDIT_TEXT
@ -407,14 +422,14 @@ sealed class QueryCondition : FilterElementRow {
class StartedFromTime(startTime:Date = Date().startOfDay()): TimeQuery() {
override var operator = Operator.MORE
init {
this.singleValue = startTime
this.listOfValues = arrayListOf(startTime)
}
}
class EndedToTime(endTime:Date = Date().endOfDay()): TimeQuery() {
override var operator = Operator.LESS
init {
this.singleValue = endTime
this.listOfValues = arrayListOf(endTime)
}
}

@ -8,7 +8,6 @@ import net.pokeranalytics.android.model.filter.Query
import net.pokeranalytics.android.model.filter.QueryCondition
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.rowrepresentable.FilterCategoryRow
import timber.log.Timber
import java.util.*
/**
@ -64,13 +63,13 @@ open class Filter : RealmObject(), RowRepresentable {
println("list of querys previous: ${this.filterConditions.map { it.queryCondition.id }}")
filterConditionRows
.map {
it.filterSectionRow
it.groupId
}
.distinct()
.forEach { filterName->
.forEach { groupId->
filterConditionRows
.filter {
it.filterSectionRow == filterName
it.groupId == groupId
}
.apply {
@ -79,7 +78,7 @@ open class Filter : RealmObject(), RowRepresentable {
casted.addAll(this)
val newFilterCondition = FilterCondition(casted)
val previousCondition = filterConditions.filter {
it.filterName == newFilterCondition.filterName
it.filterName == newFilterCondition.filterName && it.operator == newFilterCondition.operator
}
filterConditions.removeAll(previousCondition)
filterConditions.add(newFilterCondition)

@ -90,6 +90,7 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
IsToday::class.java, WasYesterday::class.java, WasTodayAndYesterday::class.java, DuringThisYear::class.java, DuringThisMonth::class.java, DuringThisWeek::class.java -> "startDate"
StartedFromTime::class.java -> "startDateHourMinuteComponent"
EndedToTime::class.java -> "endDateHourMinuteComponent"
Duration::class.java -> "netDuration"
else -> null
}
}

@ -63,6 +63,7 @@ open class FilterDetailsFragment : RealmFragment(), StaticRowRepresentableDataS
override fun onBackPressed() {
super.onBackPressed()
println("<<<<< back pressed")
saveData()
}

Loading…
Cancel
Save