Working on CalendarFragment

feature/top10
Aurelien Hubert 7 years ago
parent d3826e6e61
commit c269f9f930
  1. 123
      app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarFragment.kt

@ -8,15 +8,20 @@ import androidx.recyclerview.widget.LinearLayoutManager
import io.realm.Realm
import kotlinx.android.synthetic.main.fragment_calendar.*
import kotlinx.android.synthetic.main.fragment_stats.recyclerView
import kotlinx.coroutines.*
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import net.pokeranalytics.android.R
import net.pokeranalytics.android.calculus.Calculator
import net.pokeranalytics.android.calculus.Report
import net.pokeranalytics.android.calculus.Stat
import net.pokeranalytics.android.model.comparison.Comparator
import net.pokeranalytics.android.model.filter.QueryCondition
import net.pokeranalytics.android.model.realm.FilterCondition
import net.pokeranalytics.android.ui.fragment.components.SessionObserverFragment
import net.pokeranalytics.android.ui.view.CalendarTabs
import net.pokeranalytics.android.ui.view.rowrepresentable.FilterElementRow
import net.pokeranalytics.android.ui.view.rowrepresentable.FilterSectionRow
import timber.log.Timber
import java.util.*
import kotlin.coroutines.CoroutineContext
@ -24,55 +29,55 @@ import kotlin.coroutines.CoroutineContext
class CalendarFragment : SessionObserverFragment(), CoroutineScope {
companion object {
companion object {
/**
* Create new instance
*/
fun newInstance(): CalendarFragment {
val fragment = CalendarFragment()
val bundle = Bundle()
fragment.arguments = bundle
return fragment
}
}
/**
* Create new instance
*/
fun newInstance(): CalendarFragment {
val fragment = CalendarFragment()
val bundle = Bundle()
fragment.arguments = bundle
return fragment
}
}
// Life Cycle
// Life Cycle
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_calendar, container, false)
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_calendar, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initData()
initUI()
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initData()
initUI()
launchStatComputation()
}
launchStatComputation()
}
// Business
// Business
/**
* Init data
*/
private fun initData() {
/**
* Init data
*/
private fun initData() {
/*
val comparator = Comparator.MONTH // returns all months
/*
val comparator = Comparator.MONTH // returns all months
val conditions = comparator.queryConditions
val conditions = comparator.queryConditions
conditions.forEach {
conditions.forEach {
val realm = getRealm()
Calculator.computeStatsWithComparators(realm, conditions = listOf(it), options = Calculator.Options())
val realm = getRealm()
Calculator.computeStatsWithComparators(realm, conditions = listOf(it), options = Calculator.Options())
}
*/
}
*/
}
}
override val coroutineContext: CoroutineContext
get() = Dispatchers.Main
@ -81,10 +86,47 @@ class CalendarFragment : SessionObserverFragment(), CoroutineScope {
private fun launchStatComputation() {
val comparator = Comparator.MONTH // returns all months
//val conditions = comparator.queryConditions
//val conditions = listOf(QueryCondition.CASH, QueryCondition.TOURNAMENT)
val calendar = Calendar.getInstance()
calendar.set(Calendar.YEAR, 2018)
calendar.set(Calendar.MONTH, Calendar.DECEMBER)
val filterMonth = QueryCondition.MONTH()
val filterElementRow = FilterElementRow.Month(calendar.get(Calendar.MONTH))
filterElementRow.filterSectionRow = FilterSectionRow.DYNAMIC_DATE
val filterElement = FilterCondition(arrayListOf(filterElementRow))
filterMonth.updateValueMap(filterElement)
// val conditions = comparator.queryConditions
val conditions = listOf(QueryCondition.CASH, QueryCondition.TOURNAMENT)
val filterYear = QueryCondition.YEAR()
val filterElementRow2 = FilterElementRow.Year(calendar.get(Calendar.YEAR))
filterElementRow2.filterSectionRow = FilterSectionRow.DYNAMIC_DATE
val filterElement2 = FilterCondition(arrayListOf(filterElementRow2))
filterYear.updateValueMap(filterElement2)
//comparator.queryConditions.first().updateValueMap()
GlobalScope.launch {
val realm = Realm.getDefaultInstance()
val report = Calculator.computeStatsWithComparators(realm, conditions = listOf(filterMonth, filterYear), options = Calculator.Options())
Timber.d("Report results: ${report.results.size}")
report.results.firstOrNull()?.let {
val isEmpty = it.isEmpty
val statValue = it.computedStat(Stat.NETRESULT)?.value
Timber.d("isEmpty: $isEmpty")
Timber.d("statValue: $statValue")
}
}
/*
conditions.forEach {
val realm = getRealm()
@ -127,13 +169,12 @@ class CalendarFragment : SessionObserverFragment(), CoroutineScope {
}
}
*/
}
/**
* Init UI
*/

Loading…
Cancel
Save