Adds patch to fix Session Sets potential duration issue

od
Laurent 6 years ago
parent 259fec137d
commit 0d00d8f447
  1. 77
      app/src/main/java/net/pokeranalytics/android/model/migrations/Patcher.kt
  2. 1
      app/src/main/java/net/pokeranalytics/android/util/Preferences.kt

@ -6,6 +6,7 @@ import net.pokeranalytics.android.model.filter.Query
import net.pokeranalytics.android.model.filter.QueryCondition
import net.pokeranalytics.android.model.realm.*
import net.pokeranalytics.android.model.utils.Seed
import net.pokeranalytics.android.model.utils.SessionSetManager
import net.pokeranalytics.android.util.Preferences
class Patcher {
@ -13,25 +14,32 @@ class Patcher {
companion object {
fun patchAll(context: Context) {
patchMissingTransactionTypes(context)
Preferences.executeOnce(Preferences.Keys.PATCH_SESSION_SETS, context) {
patchSessionSet()
}
Preferences.executeOnce(Preferences.Keys.PATCH_BREAK, context) {
patchBreaks()
}
Preferences.executeOnce(Preferences.Keys.PATCH_TRANSACTION_TYPES_NAMES, context) {
patchDefaultTransactionTypes(context)
}
Preferences.executeOnce(Preferences.Keys.PATCH_BLINDS_FORMAT, context) {
patchBlindFormat()
}
Preferences.executeOnce(Preferences.Keys.PATCH_BLINDS_FORMAT, context) {
patchBlindFormat()
}
val realm = Realm.getDefaultInstance()
val lockedTypes = realm.where(TransactionType::class.java).equalTo("lock", true).findAll()
val lockedTypes =
realm.where(TransactionType::class.java).equalTo("lock", true).findAll()
if (lockedTypes.size == 3) {
Preferences.executeOnce(Preferences.Keys.ADD_NEW_TRANSACTION_TYPES, context) {
val newTypes = arrayOf(TransactionType.Value.STACKING_INCOMING, TransactionType.Value.STACKING_OUTGOING)
val newTypes = arrayOf(
TransactionType.Value.STACKING_INCOMING,
TransactionType.Value.STACKING_OUTGOING
)
realm.executeTransaction {
Seed.createDefaultTransactionTypes(newTypes, context, realm)
}
@ -45,7 +53,8 @@ class Patcher {
val realm = Realm.getDefaultInstance()
val depositType = TransactionType.Value.DEPOSIT
val deposit = realm.where(TransactionType::class.java).equalTo("kind", depositType.uniqueIdentifier).findFirst()
val deposit = realm.where(TransactionType::class.java)
.equalTo("kind", depositType.uniqueIdentifier).findFirst()
if (deposit == null) {
realm.executeTransaction {
Seed.createDefaultTransactionTypes(arrayOf(depositType), context, realm)
@ -53,7 +62,8 @@ class Patcher {
}
val withdrawalType = TransactionType.Value.WITHDRAWAL
val withdrawal = realm.where(TransactionType::class.java).equalTo("kind", withdrawalType.uniqueIdentifier).findFirst()
val withdrawal = realm.where(TransactionType::class.java)
.equalTo("kind", withdrawalType.uniqueIdentifier).findFirst()
if (withdrawal == null) {
realm.executeTransaction {
Seed.createDefaultTransactionTypes(arrayOf(withdrawalType), context, realm)
@ -68,18 +78,18 @@ class Patcher {
val realm = Realm.getDefaultInstance()
val sets = realm.where(SessionSet::class.java).findAll()
val sessions = Filter.queryOn<Session>(realm, Query(QueryCondition.IsCash))
val results = realm.where(Result::class.java).findAll()
val results = realm.where(Result::class.java).findAll()
realm.executeTransaction {
sets.forEach {
it.computeStats()
}
sessions.forEach {
it.formatBlinds()
}
results.forEach {
it.computeNumberOfRebuy()
}
sessions.forEach {
it.formatBlinds()
}
results.forEach {
it.computeNumberOfRebuy()
}
}
realm.close()
@ -100,16 +110,33 @@ class Patcher {
realm.close()
}
private fun patchBlindFormat() {
val realm = Realm.getDefaultInstance()
realm.executeTransaction {
val sessions = realm.where(Session::class.java).findAll()
sessions.forEach { session ->
session.formatBlinds()
}
}
realm.close()
}
private fun patchBlindFormat() {
val realm = Realm.getDefaultInstance()
realm.executeTransaction {
val sessions = realm.where(Session::class.java).findAll()
sessions.forEach { session ->
session.formatBlinds()
}
}
realm.close()
}
/*
02/09/19: A bug with the session set management made them kept instead of deleted,
thus making duration calculation wrong
*/
private fun patchSessionSet() {
val realm = Realm.getDefaultInstance()
realm.executeTransaction {
realm.where(SessionSet::class.java).findAll().deleteAllFromRealm()
val sessions = realm.where(Session::class.java).findAll()
sessions.forEach { session ->
SessionSetManager.updateTimeline(session)
}
}
realm.close()
}
}

@ -32,6 +32,7 @@ class Preferences {
ACTIVE_FILTER_ID("ActiveFilterId"),
LATEST_PURCHASE("latestPurchase"),
PATCH_BREAK("patchBreaks"),
PATCH_SESSION_SETS("patchSessionSet"),
PATCH_TRANSACTION_TYPES_NAMES("patchTransactionTypesNames"),
PATCH_BLINDS_FORMAT("patchBlindFormat"),
ADD_NEW_TRANSACTION_TYPES("addNewTransactionTypes")

Loading…
Cancel
Save