From 07acd7a980e5fdc94decd90cbadb666ec18995bf Mon Sep 17 00:00:00 2001 From: Razmig Sarkissian Date: Fri, 19 Apr 2019 11:57:41 +0200 Subject: [PATCH] fix issue with calendar display add a new name interface for query condition --- .../android/PokerAnalyticsApplication.kt | 2 +- .../android/model/filter/QueryCondition.kt | 17 +++++++++++++++-- .../android/ui/fragment/CalendarFragment.kt | 4 +++- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt b/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt index 1c9b7d94..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 045b55cf..f4a0d7e3 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 @@ -17,11 +17,12 @@ import net.pokeranalytics.android.ui.view.rowrepresentable.FilterSectionRow import net.pokeranalytics.android.ui.view.rowrepresentable.FilterElementRow import net.pokeranalytics.android.util.extensions.endOfDay import net.pokeranalytics.android.util.extensions.startOfDay +import java.text.DateFormatSymbols import java.util.* import kotlin.collections.ArrayList fun List.name() : String { - return this.map { it.id }.joinToString(" / ") + return this.map { it.label() }.joinToString(" / ") } //inline fun List.query(realm: Realm): RealmQuery { @@ -43,7 +44,11 @@ inline fun List.queryWith(query: RealmQ * A new type should also set the expected numericValues required in the [filterValuesExpectedKeys] */ -sealed class QueryCondition : FilterElementRow { +interface Labelable { + fun label() : String +} + +sealed class QueryCondition : FilterElementRow, Labelable { interface Valuable > { var values: ArrayList? @@ -107,6 +112,14 @@ sealed class QueryCondition : FilterElementRow { } } + override fun label(): String { + return when (this) { + is YEAR -> "$intValue" + is MONTH -> DateFormatSymbols.getInstance(Locale.getDefault()).months[intValue] + else -> baseId + } + } + override var filterSectionRow: FilterSectionRow = FilterSectionRow.CASH_TOURNAMENT open class OperationQueryCondition : QueryCondition(), asDoubleValue { diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarFragment.kt index 6dcc9294..a88f35d6 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarFragment.kt @@ -240,6 +240,8 @@ class CalendarFragment : SessionObserverFragment(), CoroutineScope, StaticRowRep // Compute data per YEAR and MONTH + println(">>>> ${Comparator.MONTH_OF_YEAR.queryConditions.map { it.id }}") + val monthConditions = when (sessionTypeCondition) { QueryCondition.CASH -> listOf(Comparator.YEAR, Comparator.MONTH_OF_YEAR, Comparator.CASH).combined() QueryCondition.TOURNAMENT -> listOf(Comparator.YEAR, Comparator.MONTH_OF_YEAR, Comparator.TOURNAMENT).combined() @@ -255,7 +257,7 @@ class CalendarFragment : SessionObserverFragment(), CoroutineScope, StaticRowRep conditions.forEach { condition -> when (condition) { is QueryCondition.YEAR -> calendar.set(Calendar.YEAR, condition.intValue) - is QueryCondition.MONTH -> calendar.set(Calendar.YEAR, condition.intValue) + is QueryCondition.MONTH -> calendar.set(Calendar.MONTH, condition.intValue) } }