|
|
|
@ -7,6 +7,7 @@ import android.view.LayoutInflater |
|
|
|
import android.view.View |
|
|
|
import android.view.View |
|
|
|
import android.view.ViewGroup |
|
|
|
import android.view.ViewGroup |
|
|
|
import io.realm.Realm |
|
|
|
import io.realm.Realm |
|
|
|
|
|
|
|
import io.realm.RealmModel |
|
|
|
import kotlinx.coroutines.Dispatchers |
|
|
|
import kotlinx.coroutines.Dispatchers |
|
|
|
import kotlinx.coroutines.GlobalScope |
|
|
|
import kotlinx.coroutines.GlobalScope |
|
|
|
import kotlinx.coroutines.async |
|
|
|
import kotlinx.coroutines.async |
|
|
|
@ -18,9 +19,10 @@ import net.pokeranalytics.android.calculus.Report |
|
|
|
import net.pokeranalytics.android.calculus.Stat |
|
|
|
import net.pokeranalytics.android.calculus.Stat |
|
|
|
import net.pokeranalytics.android.model.filter.Query |
|
|
|
import net.pokeranalytics.android.model.filter.Query |
|
|
|
import net.pokeranalytics.android.model.filter.QueryCondition |
|
|
|
import net.pokeranalytics.android.model.filter.QueryCondition |
|
|
|
|
|
|
|
import net.pokeranalytics.android.model.realm.ComputableResult |
|
|
|
import net.pokeranalytics.android.model.realm.Filter |
|
|
|
import net.pokeranalytics.android.model.realm.Filter |
|
|
|
import net.pokeranalytics.android.ui.activity.FiltersActivity |
|
|
|
import net.pokeranalytics.android.ui.activity.FiltersActivity |
|
|
|
import net.pokeranalytics.android.ui.fragment.components.ResultsObserverFragment |
|
|
|
import net.pokeranalytics.android.ui.fragment.components.RealmFragment |
|
|
|
import net.pokeranalytics.android.ui.fragment.report.ComposableTableReportFragment |
|
|
|
import net.pokeranalytics.android.ui.fragment.report.ComposableTableReportFragment |
|
|
|
import net.pokeranalytics.android.ui.interfaces.FilterActivityRequestCode |
|
|
|
import net.pokeranalytics.android.ui.interfaces.FilterActivityRequestCode |
|
|
|
import net.pokeranalytics.android.ui.interfaces.FilterHandler |
|
|
|
import net.pokeranalytics.android.ui.interfaces.FilterHandler |
|
|
|
@ -29,7 +31,7 @@ import timber.log.Timber |
|
|
|
import java.util.* |
|
|
|
import java.util.* |
|
|
|
import kotlin.coroutines.CoroutineContext |
|
|
|
import kotlin.coroutines.CoroutineContext |
|
|
|
|
|
|
|
|
|
|
|
class StatisticsFragment : ResultsObserverFragment(), FilterHandler { |
|
|
|
class StatisticsFragment : RealmFragment(), FilterHandler { |
|
|
|
|
|
|
|
|
|
|
|
val coroutineContext: CoroutineContext |
|
|
|
val coroutineContext: CoroutineContext |
|
|
|
get() = Dispatchers.Main |
|
|
|
get() = Dispatchers.Main |
|
|
|
@ -71,7 +73,9 @@ class StatisticsFragment : ResultsObserverFragment(), FilterHandler { |
|
|
|
this.tableReportFragment = fragment |
|
|
|
this.tableReportFragment = fragment |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
override fun sessionsChanged() { |
|
|
|
override val observedEntities: List<Class<out RealmModel>> = listOf(ComputableResult::class.java) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun entitiesChanged() { |
|
|
|
this.launchStatComputation() |
|
|
|
this.launchStatComputation() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -101,11 +105,11 @@ class StatisticsFragment : ResultsObserverFragment(), FilterHandler { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
override fun applyFilter() { |
|
|
|
override fun applyFilter() { |
|
|
|
this.sessionsChanged() |
|
|
|
this.entitiesChanged() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
override fun removeFilter() { |
|
|
|
override fun removeFilter() { |
|
|
|
this.sessionsChanged() |
|
|
|
this.entitiesChanged() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
override var currentFilterable: FilterableType = FilterableType.SESSION |
|
|
|
override var currentFilterable: FilterableType = FilterableType.SESSION |
|
|
|
@ -148,7 +152,7 @@ class StatisticsFragment : ResultsObserverFragment(), FilterHandler { |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
private fun createSessionGroupsAndStartCompute(realm: Realm): Report { |
|
|
|
private fun createSessionGroupsAndStartCompute(realm: Realm): Report { |
|
|
|
|
|
|
|
|
|
|
|
val filter : Filter? = this.currentFilter(this.requireContext(), realm) |
|
|
|
val filter: Filter? = this.currentFilter(this.requireContext(), realm) |
|
|
|
|
|
|
|
|
|
|
|
val allStats: List<Stat> = listOf( |
|
|
|
val allStats: List<Stat> = listOf( |
|
|
|
Stat.NET_RESULT, |
|
|
|
Stat.NET_RESULT, |
|
|
|
@ -175,7 +179,14 @@ class StatisticsFragment : ResultsObserverFragment(), FilterHandler { |
|
|
|
) |
|
|
|
) |
|
|
|
val cgSessionGroup = ComputableGroup(Query(QueryCondition.IsCash).merge(query), cgStats) |
|
|
|
val cgSessionGroup = ComputableGroup(Query(QueryCondition.IsCash).merge(query), cgStats) |
|
|
|
val tStats: List<Stat> = |
|
|
|
val tStats: List<Stat> = |
|
|
|
listOf(Stat.NET_RESULT, Stat.HOURLY_RATE, Stat.ROI, Stat.WIN_RATIO, Stat.NUMBER_OF_GAMES, Stat.AVERAGE_BUYIN) |
|
|
|
listOf( |
|
|
|
|
|
|
|
Stat.NET_RESULT, |
|
|
|
|
|
|
|
Stat.HOURLY_RATE, |
|
|
|
|
|
|
|
Stat.ROI, |
|
|
|
|
|
|
|
Stat.WIN_RATIO, |
|
|
|
|
|
|
|
Stat.NUMBER_OF_GAMES, |
|
|
|
|
|
|
|
Stat.AVERAGE_BUYIN |
|
|
|
|
|
|
|
) |
|
|
|
val tSessionGroup = ComputableGroup(Query(QueryCondition.IsTournament).merge(query), tStats) |
|
|
|
val tSessionGroup = ComputableGroup(Query(QueryCondition.IsTournament).merge(query), tStats) |
|
|
|
|
|
|
|
|
|
|
|
Timber.d(">>>>> Start computations...") |
|
|
|
Timber.d(">>>>> Start computations...") |
|
|
|
|