defines winner positions asynchronously as it takes time

hh
Laurent 6 years ago
parent 1fe06b1931
commit 8abd8021a0
  1. 26
      app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/model/HandHistoryViewModel.kt

@ -5,6 +5,10 @@ import android.text.InputType
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import io.realm.Realm import io.realm.Realm
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.async
import kotlinx.coroutines.launch
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.exceptions.PAIllegalStateException import net.pokeranalytics.android.exceptions.PAIllegalStateException
import net.pokeranalytics.android.model.handhistory.HandSetup import net.pokeranalytics.android.model.handhistory.HandSetup
@ -24,6 +28,9 @@ import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor
import net.pokeranalytics.android.ui.view.rowrepresentable.CustomizableRowRepresentable import net.pokeranalytics.android.ui.view.rowrepresentable.CustomizableRowRepresentable
import net.pokeranalytics.android.util.extensions.formatted import net.pokeranalytics.android.util.extensions.formatted
import timber.log.Timber import timber.log.Timber
import java.util.*
import kotlin.collections.LinkedHashSet
import kotlin.coroutines.CoroutineContext
import kotlin.reflect.KClass import kotlin.reflect.KClass
enum class HHKeyboard { enum class HHKeyboard {
@ -40,6 +47,9 @@ interface PlayerSetupCreationListener {
class HandHistoryViewModel : ViewModel(), RowRepresentableDataSource, CardCentralizer, ActionListListener { class HandHistoryViewModel : ViewModel(), RowRepresentableDataSource, CardCentralizer, ActionListListener {
private val coroutineContext: CoroutineContext
get() = Dispatchers.Main
/*** /***
* The hand history * The hand history
*/ */
@ -595,12 +605,26 @@ class HandHistoryViewModel : ViewModel(), RowRepresentableDataSource, CardCentra
this.handHistory.actions.clear() this.handHistory.actions.clear()
val actions = this.sortedActions.map { it.action } val actions = this.sortedActions.map { it.action }
this.handHistory.actions.addAll(actions) this.handHistory.actions.addAll(actions)
this.handHistory.defineWinnerPositions()
if (!this.handHistory.isManaged) { if (!this.handHistory.isManaged) {
realm.copyToRealmOrUpdate(this.handHistory) realm.copyToRealmOrUpdate(this.handHistory)
} }
} }
this.defineWinnerPositions()
}
private fun defineWinnerPositions() {
GlobalScope.launch(coroutineContext) {
GlobalScope.async {
val realm = Realm.getDefaultInstance()
realm.executeTransaction {
handHistory.defineWinnerPositions()
}
realm.close()
}
}
} }
// Card Centralizer // Card Centralizer

Loading…
Cancel
Save