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.filter.QueryCondition
import net.pokeranalytics.android.model.realm.* import net.pokeranalytics.android.model.realm.*
import net.pokeranalytics.android.model.utils.Seed import net.pokeranalytics.android.model.utils.Seed
import net.pokeranalytics.android.model.utils.SessionSetManager
import net.pokeranalytics.android.util.Preferences import net.pokeranalytics.android.util.Preferences
class Patcher { class Patcher {
@ -13,25 +14,32 @@ class Patcher {
companion object { companion object {
fun patchAll(context: Context) { fun patchAll(context: Context) {
patchMissingTransactionTypes(context) patchMissingTransactionTypes(context)
Preferences.executeOnce(Preferences.Keys.PATCH_SESSION_SETS, context) {
patchSessionSet()
}
Preferences.executeOnce(Preferences.Keys.PATCH_BREAK, context) { Preferences.executeOnce(Preferences.Keys.PATCH_BREAK, context) {
patchBreaks() patchBreaks()
} }
Preferences.executeOnce(Preferences.Keys.PATCH_TRANSACTION_TYPES_NAMES, context) { Preferences.executeOnce(Preferences.Keys.PATCH_TRANSACTION_TYPES_NAMES, context) {
patchDefaultTransactionTypes(context) patchDefaultTransactionTypes(context)
} }
Preferences.executeOnce(Preferences.Keys.PATCH_BLINDS_FORMAT, context) { Preferences.executeOnce(Preferences.Keys.PATCH_BLINDS_FORMAT, context) {
patchBlindFormat() patchBlindFormat()
} }
val realm = Realm.getDefaultInstance() 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) { if (lockedTypes.size == 3) {
Preferences.executeOnce(Preferences.Keys.ADD_NEW_TRANSACTION_TYPES, context) { 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 { realm.executeTransaction {
Seed.createDefaultTransactionTypes(newTypes, context, realm) Seed.createDefaultTransactionTypes(newTypes, context, realm)
} }
@ -45,7 +53,8 @@ class Patcher {
val realm = Realm.getDefaultInstance() val realm = Realm.getDefaultInstance()
val depositType = TransactionType.Value.DEPOSIT 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) { if (deposit == null) {
realm.executeTransaction { realm.executeTransaction {
Seed.createDefaultTransactionTypes(arrayOf(depositType), context, realm) Seed.createDefaultTransactionTypes(arrayOf(depositType), context, realm)
@ -53,7 +62,8 @@ class Patcher {
} }
val withdrawalType = TransactionType.Value.WITHDRAWAL 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) { if (withdrawal == null) {
realm.executeTransaction { realm.executeTransaction {
Seed.createDefaultTransactionTypes(arrayOf(withdrawalType), context, realm) Seed.createDefaultTransactionTypes(arrayOf(withdrawalType), context, realm)
@ -68,18 +78,18 @@ class Patcher {
val realm = Realm.getDefaultInstance() val realm = Realm.getDefaultInstance()
val sets = realm.where(SessionSet::class.java).findAll() val sets = realm.where(SessionSet::class.java).findAll()
val sessions = Filter.queryOn<Session>(realm, Query(QueryCondition.IsCash)) 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 { realm.executeTransaction {
sets.forEach { sets.forEach {
it.computeStats() it.computeStats()
} }
sessions.forEach { sessions.forEach {
it.formatBlinds() it.formatBlinds()
} }
results.forEach { results.forEach {
it.computeNumberOfRebuy() it.computeNumberOfRebuy()
} }
} }
realm.close() realm.close()
@ -100,16 +110,33 @@ class Patcher {
realm.close() realm.close()
} }
private fun patchBlindFormat() { private fun patchBlindFormat() {
val realm = Realm.getDefaultInstance() val realm = Realm.getDefaultInstance()
realm.executeTransaction { realm.executeTransaction {
val sessions = realm.where(Session::class.java).findAll() val sessions = realm.where(Session::class.java).findAll()
sessions.forEach { session -> sessions.forEach { session ->
session.formatBlinds() session.formatBlinds()
} }
} }
realm.close() 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"), ACTIVE_FILTER_ID("ActiveFilterId"),
LATEST_PURCHASE("latestPurchase"), LATEST_PURCHASE("latestPurchase"),
PATCH_BREAK("patchBreaks"), PATCH_BREAK("patchBreaks"),
PATCH_SESSION_SETS("patchSessionSet"),
PATCH_TRANSACTION_TYPES_NAMES("patchTransactionTypesNames"), PATCH_TRANSACTION_TYPES_NAMES("patchTransactionTypesNames"),
PATCH_BLINDS_FORMAT("patchBlindFormat"), PATCH_BLINDS_FORMAT("patchBlindFormat"),
ADD_NEW_TRANSACTION_TYPES("addNewTransactionTypes") ADD_NEW_TRANSACTION_TYPES("addNewTransactionTypes")

Loading…
Cancel
Save