Fixes various bugs

feature/top10
Laurent 7 years ago
parent 5b5eef5d77
commit 9b68ab3b66
  1. 8
      app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt
  2. 13
      app/src/main/java/net/pokeranalytics/android/calculus/Stat.kt
  3. 7
      app/src/main/java/net/pokeranalytics/android/ui/fragment/GraphFragment.kt
  4. 2
      app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt
  5. 12
      app/src/main/java/net/pokeranalytics/android/ui/fragment/StatisticDetailsFragment.kt
  6. 9
      app/src/main/java/net/pokeranalytics/android/ui/fragment/StatisticsFragment.kt
  7. 6
      app/src/main/java/net/pokeranalytics/android/ui/view/SessionRowView.kt
  8. 2
      app/src/main/res/values/strings.xml

@ -120,12 +120,8 @@ class Calculator {
return when (aggregationType) {
AggregationType.SESSION, AggregationType.DURATION -> this.computeGroups(realm, listOf(group), options)
AggregationType.MONTH -> {
val criteria: List<Criteria> = listOf(Criteria.Years, Criteria.MonthsOfYear)
this.computeStatsWithComparators(realm, criteria, group.conditions, options)
}
AggregationType.YEAR -> {
val criteria: List<Criteria> = listOf(Criteria.Years)
AggregationType.MONTH, AggregationType.YEAR -> {
val criteria: List<Criteria> = aggregationType.criterias
this.computeStatsWithComparators(realm, criteria, group.conditions, options)
}
}

@ -3,6 +3,7 @@ package net.pokeranalytics.android.calculus
import android.content.Context
import net.pokeranalytics.android.R
import net.pokeranalytics.android.exceptions.FormattingException
import net.pokeranalytics.android.model.Criteria
import net.pokeranalytics.android.model.interfaces.Timed
import net.pokeranalytics.android.ui.graph.AxisFormatting
import net.pokeranalytics.android.ui.view.RowRepresentable
@ -46,6 +47,15 @@ enum class AggregationType {
}
}
val criterias: List<Criteria>
get() {
return when (this) {
MONTH -> listOf(Criteria.Years, Criteria.MonthsOfYear)
YEAR -> listOf(Criteria.Years)
else -> listOf()
}
}
}
/**
@ -233,7 +243,8 @@ enum class Stat : RowRepresentable {
val hasEvolutionGraph: Boolean
get() {
return when (this) {
HOURLY_DURATION, AVERAGE_HOURLY_DURATION -> false
HOURLY_DURATION, AVERAGE_HOURLY_DURATION,
STANDARD_DEVIATION, STANDARD_DEVIATION_HOURLY, STANDARD_DEVIATION_BB_PER_100_HANDS -> false
else -> true
}
}

@ -132,9 +132,12 @@ class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener {
this.chartView = lineChart
dataSets.firstOrNull()?.let {
this.legendView.prepareWithStat(this.stat, it.entryCount, this.style)
lastEntry = it.getEntryForIndex(it.entryCount - 1)
groupName = it.label
if (it.entryCount > 0) {
lastEntry = it.getEntryForIndex(it.entryCount - 1)
groupName = it.label
}
}
}

@ -108,7 +108,7 @@ class ReportsFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSour
private fun launchComputation(criteria: List<Criteria>, reportName: String) {
if (criteria.combined().size < 2) {
Toast.makeText(context, R.string.less_then_2_values_for_comparison, Toast.LENGTH_LONG).show()
Toast.makeText(context, R.string.less_then_2_values_for_display, Toast.LENGTH_LONG).show()
return
}

@ -4,6 +4,7 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.core.view.isVisible
import com.github.mikephil.charting.data.BarDataSet
import com.github.mikephil.charting.data.LineDataSet
@ -16,6 +17,7 @@ import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import net.pokeranalytics.android.R
import net.pokeranalytics.android.calculus.*
import net.pokeranalytics.android.model.combined
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.extensions.ChipGroupExtension
import net.pokeranalytics.android.ui.extensions.hideWithAnimation
@ -107,6 +109,16 @@ class StatisticDetailsFragment : PokerAnalyticsFragment() {
super.onCheckedChanged(group, checkedId)
val aggregationType = aggregationTypes[checkedId]
when (aggregationType) {
AggregationType.MONTH, AggregationType.YEAR -> {
val queryConditions = aggregationType.criterias.combined()
if (queryConditions.size < 2) {
Toast.makeText(context, R.string.less_then_2_values_for_display, Toast.LENGTH_LONG).show()
return
}
}
}
reports[aggregationType]?.let { report ->
setGraphData(report, aggregationType)
} ?: run {

@ -139,7 +139,14 @@ class StatisticsFragment : TableReportFragment() {
Timber.d(">>>>> Start computations...")
return Calculator.computeGroups(realm, listOf(allSessionGroup, cgSessionGroup, tSessionGroup), Calculator.Options())
val options = Calculator.Options()
var computedStats = mutableListOf<Stat>()
computedStats.addAll(allStats)
computedStats.addAll(cgStats)
computedStats.addAll(tStats)
options.displayedStats = computedStats
return Calculator.computeGroups(realm, listOf(allSessionGroup, cgSessionGroup, tSessionGroup), options)
}
}

@ -58,9 +58,11 @@ class SessionRowView : FrameLayout {
*/
fun setData(session: Session) {
val date = session.startDate ?: session.creationDate
// Date
rowHistorySession.dateDay.text = session.creationDate.getShortDayName()
rowHistorySession.dateNumber.text = session.creationDate.getDayNumber()
rowHistorySession.dateDay.text = date.getShortDayName()
rowHistorySession.dateNumber.text = date.getDayNumber()
// Title / Game type

@ -9,7 +9,7 @@
<string name="variant">Variant</string>
<string name="line">Line</string>
<string name="initial_value">Initial Value</string>
<string name="less_then_2_values_for_comparison">There is less than two values to compare! Please change your habits :)</string>
<string name="less_then_2_values_for_display">Can\'t show because there is less than two values to display!</string>
<!--<string name="session_missing_end_date">Please set the end date for the session</string>-->
<!--<string name="default_error_message">Sorry, something went wrong...please contact us!</string>-->

Loading…
Cancel
Save