Block stuff

threading
Laurent 3 years ago
parent 47b30f1788
commit 7c64408749
  1. 3
      app/src/main/java/net/pokeranalytics/android/calculus/ReportWhistleBlower.kt
  2. 3
      app/src/main/java/net/pokeranalytics/android/calculus/bankroll/BankrollReportManager.kt
  3. 5
      app/src/main/java/net/pokeranalytics/android/model/utils/SessionSetManager.kt
  4. 4
      app/src/main/java/net/pokeranalytics/android/ui/activity/HomeActivity.kt
  5. 19
      app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt
  6. 19
      app/src/main/java/net/pokeranalytics/android/ui/fragment/StatisticsFragment.kt
  7. 16
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/RealmFragment.kt
  8. 3
      app/src/main/java/net/pokeranalytics/android/ui/modules/bankroll/BankrollFragment.kt
  9. 6
      app/src/main/java/net/pokeranalytics/android/ui/modules/calendar/CalendarFragment.kt
  10. 8
      app/src/main/java/net/pokeranalytics/android/ui/modules/feed/FeedFragment.kt
  11. 2
      app/src/main/java/net/pokeranalytics/android/ui/modules/session/SessionFragment.kt
  12. 2
      app/src/main/java/net/pokeranalytics/android/util/Global.kt

@ -33,7 +33,7 @@ class ReportWhistleBlower(var context: Context) {
private val listeners: MutableList<NewPerformanceListener> = mutableListOf()
private var paused: Boolean = false
private var paused: Boolean = !Global.LAUNCH_ASYNC_LISTENERS
private var timer: CountDownTimer? = null
@ -68,7 +68,6 @@ class ReportWhistleBlower(var context: Context) {
}
fun requestReportLaunch() {
// Timber.d(">>> Launch report")
if (paused) {
return

@ -6,6 +6,7 @@ import kotlinx.coroutines.*
import net.pokeranalytics.android.model.realm.Bankroll
import net.pokeranalytics.android.model.realm.ComputableResult
import net.pokeranalytics.android.model.realm.Transaction
import net.pokeranalytics.android.util.Global
import timber.log.Timber
import java.util.*
import kotlin.coroutines.CoroutineContext
@ -25,7 +26,9 @@ object BankrollReportManager {
bankrolls = realm.where(Bankroll::class.java).findAll()
transactions = realm.where(Transaction::class.java).findAll()
if (Global.LAUNCH_ASYNC_LISTENERS) {
initializeListeners()
}
realm.close()
}

@ -6,6 +6,7 @@ import io.realm.RealmResults
import net.pokeranalytics.android.exceptions.ModelException
import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.model.realm.SessionSet
import net.pokeranalytics.android.util.Global
import net.pokeranalytics.android.util.extensions.findById
import timber.log.Timber
@ -32,14 +33,14 @@ object SessionSetManager {
val realm = Realm.getDefaultInstance()
this.sessions = realm.where(Session::class.java).findAllAsync()
if (Global.LAUNCH_ASYNC_LISTENERS) {
this.sessions.addChangeListener { _, _ ->
// if (Global.LAUNCH_ASYNC_LISTENERS) {
if (this.sessionIdsToProcess.isNotEmpty()) {
realm.executeTransactionAsync { asyncRealm ->
processSessions(asyncRealm)
}
}
// }
}
}
realm.close()

@ -17,6 +17,7 @@ import net.pokeranalytics.android.model.realm.Currency
import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.ui.activity.components.BaseActivity
import net.pokeranalytics.android.ui.adapter.HomePagerAdapter
import net.pokeranalytics.android.util.Global
import net.pokeranalytics.android.util.Preferences
import net.pokeranalytics.android.util.billing.AppGuard
import net.pokeranalytics.android.util.extensions.findAll
@ -114,6 +115,8 @@ class HomeActivity : BaseActivity(), NewPerformanceListener {
// observe currency changes
this.currencies = realm.where(Currency::class.java).findAllAsync()
if (Global.LAUNCH_ASYNC_LISTENERS) {
this.currencies.addChangeListener { _, _ ->
realm.executeTransactionAsync { asyncRealm ->
asyncRealm.where(Currency::class.java).findAll().forEach { currency ->
@ -122,6 +125,7 @@ class HomeActivity : BaseActivity(), NewPerformanceListener {
}
}
}
}
/**
* Init UI

@ -11,11 +11,13 @@ import android.widget.Toast
import androidx.recyclerview.widget.LinearLayoutManager
import io.realm.Realm
import io.realm.RealmResults
import kotlinx.coroutines.*
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import net.pokeranalytics.android.R
import net.pokeranalytics.android.calculus.Calculator
import net.pokeranalytics.android.calculus.NewPerformanceListener
import net.pokeranalytics.android.calculus.Report
import net.pokeranalytics.android.calculus.Stat
import net.pokeranalytics.android.calculus.calcul.ReportDisplay
import net.pokeranalytics.android.databinding.FragmentReportsBinding
@ -36,10 +38,10 @@ import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowViewType
import net.pokeranalytics.android.ui.view.rows.CustomizableRowRepresentable
import net.pokeranalytics.android.ui.view.rows.StaticReport
import net.pokeranalytics.android.util.Global
import net.pokeranalytics.android.util.NULL_TEXT
import net.pokeranalytics.android.util.Preferences
import timber.log.Timber
import java.util.*
data class ReportSection(val report: StaticReport, var performances: MutableList<PerformanceRow>) {
@ -148,17 +150,21 @@ class ReportsFragment : DeletableItemFragment(), StaticRowRepresentableDataSourc
* Init data
*/
private fun initData() {
this.reportSetups = getRealm().where(ReportSetup::class.java).findAllAsync().sort("name")
this.reportSetups = getRealm().where(ReportSetup::class.java).sort("name").findAllAsync()
this.performances = getRealm().where(Performance::class.java).findAllAsync()
if (Global.LAUNCH_ASYNC_LISTENERS) {
this.reportSetups.addChangeListener { _, _ ->
this.updateRows()
}
this.performances = getRealm().where(Performance::class.java).findAllAsync()
this.performances.addChangeListener { _, _ ->
this.updateRows()
}
}
}
/**
* Init UI
*/
@ -307,6 +313,7 @@ class ReportsFragment : DeletableItemFragment(), StaticRowRepresentableDataSourc
*/
private fun launchReportWithOptions(options: Calculator.Options, reportDisplay: ReportDisplay, reportName: String) {
Timber.d("launchReportWithOptions")
showLoader()
CoroutineScope(Dispatchers.Default).launch {

@ -30,7 +30,9 @@ import net.pokeranalytics.android.ui.modules.filter.FilterActivityRequestCode
import net.pokeranalytics.android.ui.modules.filter.FilterableType
import net.pokeranalytics.android.ui.modules.filter.FiltersActivity
import net.pokeranalytics.android.ui.modules.settings.TransactionFilterActivity
import net.pokeranalytics.android.util.Global
import timber.log.Timber
import java.util.*
class StatisticsFragment : FilterableFragment(), RealmAsyncListener {
@ -73,11 +75,13 @@ class StatisticsFragment : FilterableFragment(), RealmAsyncListener {
this.currentFilterable = FilterableType.SESSION
applyFilter()
if (Global.LAUNCH_ASYNC_LISTENERS) {
addRealmChangeListener(this, UserConfig::class.java)
addRealmChangeListener(this, ComputableResult::class.java)
addRealmChangeListener(this, Transaction::class.java)
addRealmChangeListener(this, SessionSet::class.java)
}
}
private fun initUI() {
val fragmentTransaction = parentFragmentManager.beginTransaction()
@ -165,8 +169,8 @@ class StatisticsFragment : FilterableFragment(), RealmAsyncListener {
CoroutineScope(Dispatchers.Default).launch {
val async = async {
// val s = Date()
// Timber.d(">>> start...")
val s = Date()
Timber.d(">>> start...")
val realm = Realm.getDefaultInstance()
realm.refresh()
@ -176,9 +180,9 @@ class StatisticsFragment : FilterableFragment(), RealmAsyncListener {
realm.close()
// val e = Date()
// val duration = (e.time - s.time) / 1000.0
// Timber.d(">>> ended in $duration seconds")
val e = Date()
val duration = (e.time - s.time) / 1000.0
Timber.d(">>> computations took $duration seconds")
}
async.await()
@ -196,6 +200,9 @@ class StatisticsFragment : FilterableFragment(), RealmAsyncListener {
*/
private fun createSessionGroupsAndStartCompute(realm: Realm): Report {
Timber.d(">>> Launch statistics computations")
val filter: Filter? = this.currentFilter(this.requireContext(), realm)?.let {
if (it.filterableType == currentFilterable) { it } else { null }
}
@ -244,8 +251,6 @@ class StatisticsFragment : FilterableFragment(), RealmAsyncListener {
val tSessionGroup = ComputableGroup(Query(QueryCondition.IsTournament).merge(query), tStats)
Timber.d(">>>>> Start computations...")
val options = Calculator.Options()
val computedStats = mutableListOf<Stat>()
computedStats.addAll(allStats)

@ -35,16 +35,6 @@ open class RealmFragment : BaseFragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
realm = Realm.getDefaultInstance()
// this.observedEntities.forEach {
// val realmResults = realm.where(it).findAllAsync()
// realmResults.addChangeListener { t, _ ->
// this.entitiesChanged(it, t)
// }
//
// this.observedRealmResults.add(realmResults)
// }
return super.onCreateView(inflater, container, savedInstanceState)
}
@ -63,11 +53,9 @@ open class RealmFragment : BaseFragment() {
this.changeListener = listener
val results = this.realm.where(clazz).findAllAsync()
results.addChangeListener { t, _ ->
results.addChangeListener { res, _ ->
// Timber.d("Realm changes: ${realmResults?.size}, $this")
if (Global.LAUNCH_ASYNC_LISTENERS) {
this.changeListener?.asyncListenedEntityChange(t.realm, clazz)
}
this.changeListener?.asyncListenedEntityChange(res.realm, clazz)
}
this.observedRealmResults.add(results)
}

@ -33,6 +33,7 @@ import net.pokeranalytics.android.ui.view.rows.BankrollGraphRow
import net.pokeranalytics.android.ui.view.rows.BankrollMainRow
import net.pokeranalytics.android.ui.view.rows.BankrollTotalRow
import net.pokeranalytics.android.ui.view.rows.CustomizableRowRepresentable
import net.pokeranalytics.android.util.Global
import net.pokeranalytics.android.util.extensions.sorted
import timber.log.Timber
import java.util.*
@ -118,9 +119,11 @@ class BankrollFragment : DeletableItemFragment(), StaticRowRepresentableDataSour
private fun initData() {
this.bankrolls = getRealm().sorted()
if (Global.LAUNCH_ASYNC_LISTENERS) {
this.bankrolls.addChangeListener { _, _ ->
this.createRowRepresentables()
}
}
this.createRowRepresentables()
}

@ -35,7 +35,9 @@ import net.pokeranalytics.android.ui.view.CalendarTabs
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowViewType
import net.pokeranalytics.android.ui.view.rows.CustomizableRowRepresentable
import net.pokeranalytics.android.util.Global
import net.pokeranalytics.android.util.extensions.*
import timber.log.Timber
import java.util.*
import kotlin.collections.set
@ -100,11 +102,13 @@ class CalendarFragment : RealmFragment(), StaticRowRepresentableDataSource,
initData()
initUI()
if (Global.LAUNCH_ASYNC_LISTENERS) {
addRealmChangeListener(this, UserConfig::class.java)
addRealmChangeListener(this, ComputableResult::class.java)
addRealmChangeListener(this, Transaction::class.java)
addRealmChangeListener(this, SessionSet::class.java)
}
}
private var transactionFilterMenuItem: MenuItem? = null
@ -359,6 +363,8 @@ class CalendarFragment : RealmFragment(), StaticRowRepresentableDataSource,
private fun launchStatComputation(realm: Realm) {
Timber.d(">>> Launch calendar computations")
val calendar = Calendar.getInstance()
calendar.time = Date().startOfMonth()

@ -148,10 +148,6 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate, PurchaseLis
AppGuard.registerListener(this)
addRealmChangeListener(this, Session::class.java)
addRealmChangeListener(this, Transaction::class.java)
addRealmChangeListener(this, HandHistory::class.java)
initUI()
initData()
}
@ -340,6 +336,10 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate, PurchaseLis
*/
private fun initData() {
addRealmChangeListener(this, Session::class.java)
addRealmChangeListener(this, Transaction::class.java)
addRealmChangeListener(this, HandHistory::class.java)
this.currentFilterable = FilterableType.SESSION
applyFilter()
}

@ -279,7 +279,7 @@ class SessionFragment : RealmFragment(), RowRepresentableDelegate, StaticRowRepr
session.updateValue(value, row)
}
Timber.d("val = ${this.currentSession.customFieldEntries}")
// Timber.d("val = ${this.currentSession.customFieldEntries}")
// try {
// this.currentSession.updateValue(value, row)

@ -8,6 +8,6 @@ const val UUID_SEPARATOR: String = ","
class Global {
companion object {
const val LAUNCH_ASYNC_LISTENERS = true
const val LAUNCH_ASYNC_LISTENERS = false
}
}

Loading…
Cancel
Save