From 0ce48fc39ff661817d83a1473e4bf0afd03813c5 Mon Sep 17 00:00:00 2001 From: Razmig Sarkissian Date: Wed, 24 Apr 2019 09:22:50 +0200 Subject: [PATCH] clean up and fix bug on filter UI --- .../SessionFilterInstrumentedUnitTest.kt | 16 +-- .../android/PokerAnalyticsApplication.kt | 2 +- .../android/model/filter/QueryCondition.kt | 123 ++++++++++-------- .../android/model/realm/Filter.kt | 2 +- .../android/model/realm/FilterCondition.kt | 1 - .../android/model/realm/Session.kt | 6 +- .../ui/fragment/FilterDetailsFragment.kt | 21 ++- .../rowrepresentable/FilterCategoryRow.kt | 10 +- .../view/rowrepresentable/FilterElementRow.kt | 16 ++- .../view/rowrepresentable/FilterSectionRow.kt | 45 +++---- 10 files changed, 129 insertions(+), 113 deletions(-) diff --git a/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/SessionFilterInstrumentedUnitTest.kt b/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/SessionFilterInstrumentedUnitTest.kt index e4fc2655..8a477114 100644 --- a/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/SessionFilterInstrumentedUnitTest.kt +++ b/app/src/androidTest/java/net/pokeranalytics/android/unitTests/filter/SessionFilterInstrumentedUnitTest.kt @@ -472,8 +472,8 @@ class SessionFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { val s2 = Session.testInstance(netResult = 570.0) realm.commitTransaction() - val filter = QueryCondition.NetResult() - val filterElementRow = QueryCondition.NetResult(QueryCondition.Operator.MORE).apply { listOfValues = arrayListOf(204.0) } + val filter = QueryCondition.NetAmountWon() + val filterElementRow = QueryCondition.more().apply { listOfValues = arrayListOf(204.0) } filterElementRow.filterSectionRow = FilterSectionRow.VALUE filter.updateValueMap(FilterCondition(arrayListOf(filterElementRow))) @@ -497,8 +497,8 @@ class SessionFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { Session.testInstance(netResult = 570.0) realm.commitTransaction() - val filter = QueryCondition.NetResult() - val filterElementRow = QueryCondition.NetResult(QueryCondition.Operator.LESS).apply { listOfValues = arrayListOf(540.0) } + val filter = QueryCondition.NetAmountWon() + val filterElementRow = QueryCondition.less().apply { listOfValues = arrayListOf(540.0) } filterElementRow.filterSectionRow = FilterSectionRow.VALUE filter.updateValueMap(FilterCondition(arrayListOf(filterElementRow))) @@ -522,13 +522,13 @@ class SessionFilterInstrumentedUnitTest : BaseFilterInstrumentedUnitTest() { Session.testInstance(netResult = 570.0) realm.commitTransaction() - val filterMore = QueryCondition.NetResult() - val filterElementRow = QueryCondition.NetResult(QueryCondition.Operator.MORE).apply { listOfValues = arrayListOf(200.0) } + val filterMore = QueryCondition.NetAmountWon() + val filterElementRow = QueryCondition.more().apply { listOfValues = arrayListOf(200.0) } filterElementRow.filterSectionRow = FilterSectionRow.VALUE filterMore.updateValueMap(FilterCondition(arrayListOf(filterElementRow))) - val filterLess = QueryCondition.NetResult() - val filterElementRow2 = QueryCondition.NetResult(QueryCondition.Operator.LESS).apply { listOfValues = arrayListOf(400.0) } + val filterLess = QueryCondition.NetAmountWon() + val filterElementRow2 = QueryCondition.less().apply { listOfValues = arrayListOf(400.0) } filterElementRow2.filterSectionRow = FilterSectionRow.VALUE filterLess.updateValueMap(FilterCondition(arrayListOf(filterElementRow2))) diff --git a/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt b/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt index 7a16edef..75c03014 100644 --- a/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt +++ b/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt @@ -52,7 +52,7 @@ class PokerAnalyticsApplication : Application() { if (BuildConfig.DEBUG) { Timber.d("UserPreferences.defaultCurrency: ${UserDefaults.currency.symbol}") -// this.createFakeSessions() + this.createFakeSessions() } Patcher.patchBreaks() diff --git a/app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt b/app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt index 2a3dc8be..0f44e1ae 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt @@ -49,6 +49,10 @@ inline fun List.queryWith(query: RealmQ sealed class QueryCondition : FilterElementRow { companion object { + inline fun < reified T:QueryCondition> more():T { return T::class.java.newInstance().apply { this.operator = Operator.MORE } } + inline fun < reified T:QueryCondition> less():T { return T::class.java.newInstance().apply { this.operator = Operator.LESS } } + inline fun < reified T:QueryCondition> moreOrLess():ArrayList { return arrayListOf(more(), less()) } + fun valueOf(name:String) : T { val kClass = Class.forName("${QueryCondition::class.qualifiedName}$$name").kotlin val instance = kClass.objectInstance ?: kClass.java.newInstance() @@ -57,7 +61,7 @@ sealed class QueryCondition : FilterElementRow { inline fun getInstance(): QueryCondition { return when (T::class.java) { - AnyBankroll::class.java -> AnyBankroll() + Bankroll::class.java -> AnyBankroll() Game::class.java -> AnyGame() Location::class.java -> AnyLocation() TournamentName::class.java -> AnyTournamentName() @@ -97,7 +101,12 @@ sealed class QueryCondition : FilterElementRow { val baseId = this::class.simpleName ?: throw PokerAnalyticsException.FilterElementUnknownName val id: List get() { + when (this.operator) { + Operator.MORE, Operator.LESS -> return listOf("$baseId+${this.operator.name}") + } + return when (this) { + is SingleValue<*> -> listOf(baseId) is ListOfValues<*> -> { if (listOfValues.isEmpty()) { return listOf(baseId) } this.listOfValues.map{ "$baseId+$it" } @@ -131,7 +140,9 @@ sealed class QueryCondition : FilterElementRow { } abstract class ListOfDouble: ListOfValues() { - override var listOfValues = ArrayList() + open var sign: Int = 1 + + override var listOfValues = arrayListOf(0.0) override fun updateValueMap(filterCondition: FilterCondition) { super.updateValueMap(filterCondition) listOfValues = filterCondition.getValues() @@ -142,9 +153,10 @@ sealed class QueryCondition : FilterElementRow { } abstract class ListOfInt: ListOfValues() { - override var listOfValues = ArrayList() + override var listOfValues = arrayListOf(0) override fun updateValueMap(filterCondition: FilterCondition) { super.updateValueMap(filterCondition) + println("<<<< updateValueMap ${filterCondition.intValues}") listOfValues = filterCondition.getValues() } override fun labelForValue(value: Int): String { @@ -176,20 +188,6 @@ sealed class QueryCondition : FilterElementRow { } } - abstract class SingleDouble: SingleValue() { - override fun labelForValue(value: Double): String { - return value.toCurrency(UserDefaults.currency) - } - override var singleValue: Double - get() { return listOfValues.firstOrNull() ?: 0.0 } - set(value) { listOfValues.add(value) } - - override fun updateValueMap(filterCondition: FilterCondition) { - super.updateValueMap(filterCondition) - singleValue = filterCondition.getValue() - } - } - abstract class SingleInt: SingleValue() { override fun labelForValue(value: Int): String { return value.toString() @@ -242,9 +240,10 @@ sealed class QueryCondition : FilterElementRow { abstract class DateQuery: SingleDate(), DateTime { override val showTime: Boolean = false + } - abstract class TimeQuery: SingleDate(), DateTime { + abstract class TimeQuery: DateQuery() { override val showTime: Boolean = true } @@ -327,30 +326,15 @@ sealed class QueryCondition : FilterElementRow { class AnyBlind: ListOfString() class LastGame: SingleInt() - class LastSession: SingleDate() + class LastSession: SingleInt() class NumberOfTable: ListOfInt() - class NetResult(): ListOfDouble() { - constructor(operator:Operator): this() { - this.operator = operator - } - } - - class BuyIn: ListOfDouble() - - class CashOut: ListOfDouble() - - class Tips: ListOfDouble() + open class NetAmountWon: ListOfDouble() + class NetAmountLost: NetAmountWon() { override var sign: Int = -1 } class NumberOfPlayer: ListOfInt() - class Rebuy(): ListOfDouble() { - constructor(operator:Operator): this() { - this.operator = operator - } - } - class StartedFromDate: DateQuery() { override var operator = Operator.MORE } class StartedToDate: DateQuery() { override var operator = Operator.LESS } class EndedFromDate: DateQuery() { override var operator = Operator.MORE } @@ -389,21 +373,32 @@ sealed class QueryCondition : FilterElementRow { } } - class PastDay: SingleInt() - class Duration(): SingleInt() { - constructor(operator:Operator): this() { - this.operator = operator - } + class PastDay: SingleInt() { + override val viewType: Int = RowViewType.TITLE_VALUE_CHECK.ordinal + } + class Duration: SingleInt() { var minutes:Int get() { return singleValue } set(value) { singleValue = value } + + override val viewType: Int = RowViewType.TITLE_VALUE_CHECK.ordinal + override val bottomSheetType: BottomSheetType = BottomSheetType.DOUBLE_EDIT_TEXT } - class StartedFromTime: TimeQuery() { override var operator = Operator.MORE } - class EndedToTime: TimeQuery() { override var operator = Operator.LESS } + class StartedFromTime: TimeQuery() { + override var operator = Operator.MORE + init { + this.singleValue = Date().startOfDay() + } + } - class HasComment: QueryCondition() + class EndedToTime: TimeQuery() { + override var operator = Operator.LESS + init { + this.singleValue = Date().endOfDay() + } + } /** * main method of the enum @@ -472,9 +467,8 @@ sealed class QueryCondition : FilterElementRow { when (this) { is SingleDate -> realmQuery.equalTo(fieldName, singleValue) is SingleInt -> realmQuery.equalTo(fieldName, singleValue) - is SingleDouble -> realmQuery.equalTo(fieldName, singleValue) is ListOfInt -> realmQuery.equalTo(fieldName, listOfValues.first()) - is ListOfDouble -> realmQuery.equalTo(fieldName, listOfValues.first()) + is ListOfDouble -> realmQuery.equalTo(fieldName, listOfValues.first() * sign) is ListOfString -> realmQuery.equalTo(fieldName, listOfValues.first()) else -> realmQuery } @@ -483,9 +477,8 @@ sealed class QueryCondition : FilterElementRow { when (this) { is SingleDate -> realmQuery.greaterThanOrEqualTo(fieldName, singleValue) is SingleInt -> realmQuery.greaterThanOrEqualTo(fieldName, singleValue) - is SingleDouble -> realmQuery.greaterThanOrEqualTo(fieldName, singleValue) is ListOfInt -> realmQuery.greaterThanOrEqualTo(fieldName, listOfValues.first()) - is ListOfDouble -> realmQuery.greaterThanOrEqualTo(fieldName, listOfValues.first()) + is ListOfDouble -> realmQuery.greaterThanOrEqualTo(fieldName, listOfValues.first() * sign) else -> realmQuery } } @@ -493,9 +486,8 @@ sealed class QueryCondition : FilterElementRow { when (this) { is SingleDate -> realmQuery.lessThanOrEqualTo(fieldName, singleValue) is SingleInt -> realmQuery.lessThanOrEqualTo(fieldName, singleValue) - is SingleDouble -> realmQuery.lessThanOrEqualTo(fieldName, singleValue) is ListOfInt -> realmQuery.lessThanOrEqualTo(fieldName, listOfValues.first()) - is ListOfDouble -> realmQuery.lessThanOrEqualTo(fieldName, listOfValues.first()) + is ListOfDouble -> realmQuery.lessThanOrEqualTo(fieldName, listOfValues.first() * sign) else -> realmQuery } } @@ -506,7 +498,7 @@ sealed class QueryCondition : FilterElementRow { realmQuery } is ListOfDouble -> { - listOfValues.forEach { realmQuery.equalTo(fieldName, it) } + listOfValues.forEach { realmQuery.equalTo(fieldName, it * sign) } realmQuery } is ListOfString -> { @@ -537,10 +529,13 @@ sealed class QueryCondition : FilterElementRow { override val viewType: Int get() { return when (this) { - is PastDay, is StartedFromDate, is EndedToDate, is StartedFromTime, is EndedToTime, is LastGame, is LastSession, is Duration -> RowViewType.TITLE_VALUE_CHECK.ordinal + is PastDay -> RowViewType.TITLE_VALUE_CHECK.ordinal + is LastGame -> RowViewType.TITLE_VALUE_CHECK.ordinal + is LastSession -> RowViewType.TITLE_VALUE_CHECK.ordinal else -> { when (this.operator) { - Operator.MORE, Operator.LESS -> RowViewType.TITLE_VALUE_CHECK.ordinal + Operator.MORE -> RowViewType.TITLE_VALUE_CHECK.ordinal + Operator.LESS -> RowViewType.TITLE_VALUE_CHECK.ordinal else -> RowViewType.TITLE_CHECK.ordinal } } @@ -550,11 +545,13 @@ sealed class QueryCondition : FilterElementRow { override val bottomSheetType: BottomSheetType get() { return when (this) { - is PastDay, is LastGame, is LastSession -> BottomSheetType.EDIT_TEXT - is Duration -> BottomSheetType.DOUBLE_EDIT_TEXT + is PastDay -> BottomSheetType.EDIT_TEXT + is LastGame -> BottomSheetType.EDIT_TEXT + is LastSession -> BottomSheetType.EDIT_TEXT else -> { when (this.operator) { - Operator.MORE, Operator.LESS -> BottomSheetType.EDIT_TEXT + Operator.MORE -> BottomSheetType.EDIT_TEXT + Operator.LESS -> BottomSheetType.EDIT_TEXT else -> BottomSheetType.NONE } } @@ -581,6 +578,20 @@ sealed class QueryCondition : FilterElementRow { is PastDay -> R.string.period_in_days is LastGame -> R.string.last_records is LastSession -> R.string.last_sessions + is NetAmountWon -> { + when (this.operator) { + Operator.MORE -> R.string.won_amount_more_than + Operator.LESS -> R.string.won_amount_less_than + else -> null + } + } + is NetAmountLost -> { + when (this.operator) { + Operator.MORE -> R.string.lost_amount_more_than + Operator.LESS -> R.string.lost_amount_less_than + else -> null + } + } else -> { when (this.operator) { Operator.MORE -> R.string.more_than diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Filter.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Filter.kt index 3452c022..d9c2c159 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Filter.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Filter.kt @@ -110,7 +110,7 @@ open class Filter : RealmObject() { */ fun loadValueForElement(filterElementRow: QueryCondition) { val filtered = filterConditions.filter { - it.queryCondition == filterElementRow.id + it.queryCondition.id == filterElementRow.id } if (filtered.isNotEmpty()) { return filterElementRow.updateValueMap(filtered.first()) diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/FilterCondition.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/FilterCondition.kt index 60192b8a..4340ed63 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/FilterCondition.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/FilterCondition.kt @@ -20,7 +20,6 @@ open class FilterCondition() : RealmObject() { this.operator = row.operator.ordinal when (row) { is QueryCondition.SingleInt -> this.setValue(row.singleValue) - is QueryCondition.SingleDouble -> this.setValue(row.singleValue) is QueryCondition.SingleDate -> this.setValue(row.singleValue) is QueryCondition.ListOfDouble -> this.setValues(filterElementRows.flatMap { (it as QueryCondition.ListOfDouble).listOfValues }) is QueryCondition.ListOfInt -> this.setValues(filterElementRows.flatMap { (it as QueryCondition.ListOfInt).listOfValues }) diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt index 835e545e..0a4c7d2d 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt @@ -78,12 +78,8 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat AnyTableSize::class.java -> "tableSize" AnyTournamentType::class.java -> "tournamentType" AnyBlind::class.java -> "blinds" - HasComment::class.java -> "comment" NumberOfTable::class.java -> "numberOfTable" - NetResult::class.java -> "computableResults.ratedNet" - BuyIn::class.java -> "result.buyin" - CashOut::class.java -> "result.cashout" - Tips::class.java -> "result.tips" + NetAmountWon::class.java -> "computableResults.ratedNet" NumberOfPlayer::class.java -> "tournamentNumberOfPlayers" TournamentFee::class.java -> "tournamentEntryFee" StartedFromDate::class.java, StartedToDate::class.java -> "startDate" diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/FilterDetailsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/FilterDetailsFragment.kt index 96c461b9..43a3c95f 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/FilterDetailsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/FilterDetailsFragment.kt @@ -72,20 +72,25 @@ open class FilterDetailsFragment : PokerAnalyticsFragment(), StaticRowRepresent when (row) { is QueryCondition.DateQuery -> DateTimePickerManager.create(requireContext(), row, this, row.singleValue, onlyDate = !row.showTime, onlyTime = row.showTime) - is QueryCondition.Duration-> { + is QueryCondition.Duration -> { 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) } + is QueryCondition.SingleInt -> { + val valueAsString = if (row.singleValue > 0) row.singleValue.toString() else "" + val data = row.editingDescriptors(mapOf("valueAsString" to valueAsString)) + BottomSheetFragment.create(fragmentManager, row, this, data, true) + } is QueryCondition.ListOfDouble -> { val amount = if (row.listOfValues.first() > 0) row.listOfValues.first().toString() else "" val data = row.editingDescriptors(mapOf("amount" to amount)) BottomSheetFragment.create(fragmentManager, row, this, data, true) } - is QueryCondition.SingleInt -> { - val valueAsString = if (row.singleValue > 0) row.singleValue.toString() else "" - val data = row.editingDescriptors(mapOf("valueAsString" to valueAsString)) + is QueryCondition.ListOfInt -> { + val amount = if (row.listOfValues.first() > 0) row.listOfValues.first().toString() else "" + val data = row.editingDescriptors(mapOf("amount" to amount)) BottomSheetFragment.create(fragmentManager, row, this, data, true) } else -> { @@ -98,8 +103,12 @@ open class FilterDetailsFragment : PokerAnalyticsFragment(), StaticRowRepresent return when (row) { is QueryCondition.DateQuery -> if (row.showTime) row.singleValue.shortTime() else row.singleValue.shortDate() is QueryCondition.Duration -> row.minutes.toMinutes(requireContext()) - is QueryCondition.ListOfDouble -> if (row.listOfValues.first() > 0) row.listOfValues.first().toString() else NULL_TEXT is QueryCondition.SingleInt -> if (row.singleValue > 0) row.singleValue.toString() else NULL_TEXT + is QueryCondition.ListOfDouble -> if (row.listOfValues.first() > 0) row.listOfValues.first().toString() else NULL_TEXT + is QueryCondition.ListOfInt -> { + println("<<<<< ${row.listOfValues}") + if (row.listOfValues.first() > 0) row.listOfValues.first().toString() else NULL_TEXT + } else -> super.stringForRow(row) } } @@ -133,6 +142,8 @@ open class FilterDetailsFragment : PokerAnalyticsFragment(), StaticRowRepresent } } is QueryCondition.SingleInt -> row.singleValue = if (value != null && value is String) value.toInt() else 0 + is QueryCondition.ListOfDouble-> row.listOfValues = arrayListOf(if (value != null && value is String) value.toDouble() else 0.0) + is QueryCondition.ListOfInt-> row.listOfValues = arrayListOf(if (value != null && value is String) value.toInt() else 0) } // Remove the row before updating the selected rows list diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterCategoryRow.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterCategoryRow.kt index 3bdaf4e4..5bc99a77 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterCategoryRow.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterCategoryRow.kt @@ -48,20 +48,21 @@ enum class FilterCategoryRow(override val resId: Int?, override val viewType: In ) TIME_FRAME -> arrayListOf( SESSION_DURATION, - RANGE + TIME_FRAME_RANGE ) SESSIONS -> arrayListOf(FilterSectionRow.SESSIONS) BANKROLLS -> arrayListOf( BANKROLL ) CASH -> arrayListOf( - BLIND, - CASH_RE_BUY_COUNT + BLIND ) TOURNAMENT -> arrayListOf( TOURNAMENT_TYPE, TOURNAMENT_NAME, - TOURNAMENT_FEATURE + TOURNAMENT_FEATURE, + ENTRY_FEE, + NUMBER_OF_PLAYERS ) ONLINE -> arrayListOf( MULTI_TABLING @@ -70,7 +71,6 @@ enum class FilterCategoryRow(override val resId: Int?, override val viewType: In LOCATION ) PLAYERS -> arrayListOf( - NUMBER_OF_PLAYERS, MULTI_PLAYER ) RESULT -> arrayListOf( diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterElementRow.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterElementRow.kt index ecfc535f..ac49fbc8 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterElementRow.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterElementRow.kt @@ -12,6 +12,14 @@ import java.util.* interface FilterElementRow : RowRepresentable { override fun editingDescriptors(map: Map): ArrayList? { return when (this) { + is QueryCondition.Duration -> { + val hours: String? by map + val minutes: String? by map + arrayListOf( + RowRepresentableEditDescriptor(hours, R.string.hour, inputType = InputType.TYPE_CLASS_NUMBER), + RowRepresentableEditDescriptor(minutes, R.string.minute, inputType = InputType.TYPE_CLASS_NUMBER) + ) + } is QueryCondition.SingleInt -> { val valueAsString: String? by map arrayListOf( @@ -25,12 +33,10 @@ interface FilterElementRow : RowRepresentable { RowRepresentableEditDescriptor(amount, R.string.amount, inputType = InputType.TYPE_CLASS_NUMBER) ) } - is QueryCondition.Duration -> { - val hours: String? by map - val minutes: String? by map + is QueryCondition.ListOfInt -> { + val amount: String? by map arrayListOf( - RowRepresentableEditDescriptor(hours, R.string.hour, inputType = InputType.TYPE_CLASS_NUMBER), - RowRepresentableEditDescriptor(minutes, R.string.minute, inputType = InputType.TYPE_CLASS_NUMBER) + RowRepresentableEditDescriptor(amount, R.string.amount, inputType = InputType.TYPE_CLASS_NUMBER) ) } else -> super.editingDescriptors(map) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterSectionRow.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterSectionRow.kt index e78c0596..f4bd2859 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterSectionRow.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/FilterSectionRow.kt @@ -3,6 +3,7 @@ package net.pokeranalytics.android.ui.view.rowrepresentable import net.pokeranalytics.android.R import net.pokeranalytics.android.model.Criteria import net.pokeranalytics.android.model.filter.QueryCondition +import net.pokeranalytics.android.model.filter.QueryCondition.NumberOfTable.* import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowViewType @@ -20,7 +21,7 @@ enum class FilterSectionRow(override val resId: Int?) : RowRepresentable { DAY_OF_WEEK(R.string.day_of_the_week), MONTH_OF_YEAR(R.string.month_of_the_year), SESSION_DURATION(R.string.session_duration), - RANGE(R.string.hour_slot), + TIME_FRAME_RANGE(R.string.hour_slot), SESSIONS(R.string.sessions), BLIND(R.string.blinds), CASH_RE_BUY_COUNT(R.string.rebuy_count), @@ -31,7 +32,7 @@ enum class FilterSectionRow(override val resId: Int?) : RowRepresentable { PLACE(R.string.final_position), PLAYERS_COUNT(R.string.players_count), TOURNAMENT_RE_BUY_COUNT(R.string.rebuy_count), - BUY_IN(R.string.buyin), + ENTRY_FEE(R.string.buyin), MULTI_TABLING(R.string.multi_tabling), VALUE(R.string.value), LOCATION(R.string.locations), @@ -80,44 +81,36 @@ enum class FilterSectionRow(override val resId: Int?) : RowRepresentable { MONTH_OF_YEAR -> Criteria.MonthsOfYear.queryConditions // Duration - SESSION_DURATION -> arrayListOf(QueryCondition.Duration(QueryCondition.Operator.MORE), QueryCondition.Duration(QueryCondition.Operator.LESS)) - /* - RANGE -> { - val fromTime = FromTime - fromTime.dateValue = Date().startOfDay() - val toTime = ToTime - toTime.dateValue = Date().endOfDay() - arrayListOf(fromTime, toTime) - }*/ + SESSION_DURATION -> QueryCondition.moreOrLess() + TIME_FRAME_RANGE -> arrayListOf(QueryCondition.StartedFromTime(), QueryCondition.EndedToTime()) // Sessions SESSIONS -> arrayListOf(QueryCondition.LastGame(), QueryCondition.LastSession()) // Cash BLIND -> Criteria.Blinds.queryConditions - CASH_RE_BUY_COUNT -> arrayListOf( - QueryCondition.Rebuy(QueryCondition.Operator.MORE), - QueryCondition.Rebuy(QueryCondition.Operator.LESS) - ) +// CASH_RE_BUY_COUNT -> QueryCondition.moreOrLess() // Tournament TOURNAMENT_TYPE -> Criteria.TournamentTypes.queryConditions - COMPLETION_PERCENTAGE -> arrayListOf() - PLACE -> arrayListOf() - PLAYERS_COUNT -> arrayListOf() - TOURNAMENT_RE_BUY_COUNT -> arrayListOf() - BUY_IN -> arrayListOf() - +// COMPLETION_PERCENTAGE -> arrayListOf() +// PLACE -> QueryCondition.moreOrLess() + PLAYERS_COUNT -> QueryCondition.moreOrLess() +// TOURNAMENT_RE_BUY_COUNT -> QueryCondition.moreOrLess() + ENTRY_FEE -> Criteria.TournamentFees.queryConditions TOURNAMENT_NAME -> Criteria.TournamentNames.queryConditions TOURNAMENT_FEATURE -> Criteria.TournamentFeatures.queryConditions LOCATION -> Criteria.Locations.queryConditions BANKROLL -> Criteria.Bankrolls.queryConditions - MULTI_TABLING -> arrayListOf() - NUMBER_OF_PLAYERS -> arrayListOf() - MULTI_PLAYER -> arrayListOf() - - VALUE -> arrayListOf() + MULTI_TABLING -> QueryCondition.moreOrLess() +// NUMBER_OF_PLAYERS -> QueryCondition.moreOrLess() +// MULTI_PLAYER -> arrayListOf() + + VALUE -> arrayListOf().apply { + addAll(QueryCondition.moreOrLess()) + addAll(QueryCondition.moreOrLess()) + } else -> arrayListOf() }.apply { this.forEach {