diff --git a/app/src/main/java/net/pokeranalytics/android/model/comparison/Comparator.kt b/app/src/main/java/net/pokeranalytics/android/model/comparison/Comparator.kt index d75299a4..7a8c0500 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/comparison/Comparator.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/comparison/Comparator.kt @@ -8,6 +8,10 @@ import net.pokeranalytics.android.exceptions.PokerAnalyticsException import net.pokeranalytics.android.model.filter.Filterable import net.pokeranalytics.android.model.filter.QueryCondition import net.pokeranalytics.android.model.realm.Session +import net.pokeranalytics.android.ui.fragment.CalendarFragment +import java.util.* +import kotlin.collections.ArrayList +import kotlin.collections.HashSet enum class Comparator { DAY_OF_WEEK, @@ -23,6 +27,17 @@ enum class Comparator { MONTH_OF_YEAR -> List(12) { index-> QueryCondition.MONTH().apply { setMonth(index+1) } } DAY_OF_WEEK -> listOf() YEAR -> { + val years = arrayListOf() + val calendar = Calendar.getInstance() + calendar.time = Date() + val yearNow = calendar.get(Calendar.YEAR) + val realm = Realm.getDefaultInstance() + realm.where().sort("year", Sort.ASCENDING).findFirst()?.year?.let { + List(yearNow - it ) { index-> QueryCondition.YEAR().apply { setYear(yearNow - index) } } + } + realm.close() + years + /* val years = arrayListOf() val realm = Realm.getDefaultInstance() val distinctYears = realm.where().distinct("year").findAll().sort("year", Sort.DESCENDING) @@ -33,6 +48,7 @@ enum class Comparator { } realm.close() years + */ } else -> throw PokerAnalyticsException.QueryTypeUnhandled } 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 7618d7b8..42df13ff 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 @@ -56,7 +56,38 @@ class CalendarFragment : SessionObserverFragment(), CoroutineScope { */ private fun initData() { - val comparator = Comparator.MONTH // returns all months + val realm = getRealm() + + //example + //per year x month + val report = Calculator.computeStatsWithComparators(realm, comparators = listOf(Comparator.YEAR, Comparator.MONTH_OF_YEAR), options = Calculator.Options()) + + report.results.forEach { + //show net result per year x month + print(it.computedStat(Stat.NETRESULT)?.value) + + /* + si on voulait faire Year en même temps, il faudrait un array de yearData et la possibilité d'appeler un computedStat sur un array de computedResult + un yearData devra alors conteneir une variable "results" qui serait un array de tous des results de tous les mois d'une année (qu'on viendrait piocher dans report.results + A discuter: + - stocker les queryConditions dans chaque result ? + - appeler un computedStat sur un array de computedResult ? + - demander si on veut ou pas une entrée vide quand pas de sessions pour une query dans report.results + */ + } + + + //per year + val reportMonth = Calculator.computeStatsWithComparators(realm, comparators = listOf(Comparator.YEAR), options = Calculator.Options()) + + reportMonth.results.forEach { + //show net result per year + print(it.computedStat(Stat.NETRESULT)?.value) + } + + + + val comparator = Comparator.MONTH // returns all months val conditions = comparator.queryConditions