fix issue with calendar display

add a new name interface for query condition
feature/top10
Razmig Sarkissian 7 years ago
parent 6b8d263417
commit 07acd7a980
  1. 2
      app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt
  2. 17
      app/src/main/java/net/pokeranalytics/android/model/filter/QueryCondition.kt
  3. 4
      app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarFragment.kt

@ -52,7 +52,7 @@ class PokerAnalyticsApplication : Application() {
if (BuildConfig.DEBUG) {
Timber.d("UserPreferences.defaultCurrency: ${UserDefaults.currency.symbol}")
//this.createFakeSessions()
this.createFakeSessions()
}
Patcher.patchBreaks()

@ -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<QueryCondition>.name() : String {
return this.map { it.id }.joinToString(" / ")
return this.map { it.label() }.joinToString(" / ")
}
//inline fun <reified T : Filterable> List<QueryCondition>.query(realm: Realm): RealmQuery<T> {
@ -43,7 +44,11 @@ inline fun <reified T : Filterable> List<QueryCondition>.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 <T : ArrayList<T>> {
var values: ArrayList<T>?
@ -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 {

@ -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)
}
}

Loading…
Cancel
Save