From 7fc35cae72ee5c526bd3e0c926324f9c20e729c5 Mon Sep 17 00:00:00 2001 From: Laurent Date: Fri, 30 Aug 2019 13:09:34 +0200 Subject: [PATCH] Fixes crash where deposits transaction type does not exists --- .../android/model/migrations/Patcher.kt | 24 +++++++++++++++++++ .../android/model/realm/TransactionType.kt | 1 + 2 files changed, 25 insertions(+) diff --git a/app/src/main/java/net/pokeranalytics/android/model/migrations/Patcher.kt b/app/src/main/java/net/pokeranalytics/android/model/migrations/Patcher.kt index 9a1c08c3..19e9ebd1 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/migrations/Patcher.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/migrations/Patcher.kt @@ -14,6 +14,8 @@ class Patcher { fun patchAll(context: Context) { + patchMissingTransactionTypes(context) + Preferences.executeOnce(Preferences.Keys.PATCH_BREAK, context) { patchBreaks() } @@ -39,6 +41,28 @@ class Patcher { realm.close() } + private fun patchMissingTransactionTypes(context: Context) { + val realm = Realm.getDefaultInstance() + + val depositType = TransactionType.Value.DEPOSIT + val deposit = realm.where(TransactionType::class.java).equalTo("kind", depositType.uniqueIdentifier).findFirst() + if (deposit == null) { + realm.executeTransaction { + Seed.createDefaultTransactionTypes(arrayOf(depositType), context, realm) + } + } + + val withdrawalType = TransactionType.Value.WITHDRAWAL + val withdrawal = realm.where(TransactionType::class.java).equalTo("kind", withdrawalType.uniqueIdentifier).findFirst() + if (withdrawal == null) { + realm.executeTransaction { + Seed.createDefaultTransactionTypes(arrayOf(withdrawalType), context, realm) + } + } + realm.close() + + } + private fun patchBreaks() { val realm = Realm.getDefaultInstance() diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/TransactionType.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/TransactionType.kt index 53437792..e8bdf674 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/TransactionType.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/TransactionType.kt @@ -1,6 +1,7 @@ package net.pokeranalytics.android.model.realm import android.content.Context +import com.crashlytics.android.Crashlytics import io.realm.Realm import io.realm.RealmModel import io.realm.RealmObject