diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/CustomField.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/CustomField.kt index 6ea9eb03..30a68ef6 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/CustomField.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/CustomField.kt @@ -273,7 +273,6 @@ open class CustomField : RealmObject(), NameManageable, StaticRowRepresentableDa fun cleanupEntries() { // called when saving the custom field val realm = Realm.getDefaultInstance() - realm.executeTransaction { this.entriesToDelete.forEach { // entries are out of realm realm.where().equalTo("id", it.id).findFirst()?.deleteFromRealm() diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/ReportSetup.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/ReportSetup.kt index f813dd75..b48d8927 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/ReportSetup.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/ReportSetup.kt @@ -64,15 +64,15 @@ open class ReportSetup : RealmObject(), RowRepresentable, Deletable { /** * Returns the Options based on the ReportSetup parameters */ - val options: Calculator.Options - get() { + fun options(realm: Realm): Calculator.Options { - val realm = Realm.getDefaultInstance() val stats = this.statIds.map { Stat.valueByIdentifier(it) } // Comparison criteria val criteria = this.criteriaIds.map { Criteria.valueByIdentifier(it) } + val customFields = this.criteriaCustomFieldIds.mapNotNull { realm.findById(it) } + val cfCriteria = customFields.map { it.criteria } val allCriteria = mutableListOf() diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarDetailsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarDetailsFragment.kt index f98564d1..6ee22d7e 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarDetailsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarDetailsFragment.kt @@ -172,7 +172,6 @@ class CalendarDetailsFragment : BaseFragment(), StaticRowRepresentableDataSource val startDate = Date() - val realm = Realm.getDefaultInstance() val query = Query().merge(computedResults.group.query) query.remove(QueryCondition.IsCash) @@ -188,7 +187,9 @@ class CalendarDetailsFragment : BaseFragment(), StaticRowRepresentableDataSource stats = requiredStats, query = query ) + val realm = Realm.getDefaultInstance() val report = Calculator.computeStats(realm, options) + realm.close() Timber.d("Report take: ${System.currentTimeMillis() - startDate.time}ms") diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt index 499f0e95..122f6234 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt @@ -152,7 +152,7 @@ class ReportsFragment : DeletableItemFragment(), StaticRowRepresentableDataSourc launchComputation(row.criteria, reportName) } is ReportSetup -> { - launchReportWithOptions(row.options, row.name) + launchReportWithOptions(row.options(getRealm()), row.name) } } }