Realm use optims

hh
Laurent 6 years ago
parent 95f414f6d5
commit 1fe06b1931
  1. 1
      app/src/main/java/net/pokeranalytics/android/model/realm/CustomField.kt
  2. 6
      app/src/main/java/net/pokeranalytics/android/model/realm/ReportSetup.kt
  3. 3
      app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarDetailsFragment.kt
  4. 2
      app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt

@ -273,7 +273,6 @@ open class CustomField : RealmObject(), NameManageable, StaticRowRepresentableDa
fun cleanupEntries() { // called when saving the custom field fun cleanupEntries() { // called when saving the custom field
val realm = Realm.getDefaultInstance() val realm = Realm.getDefaultInstance()
realm.executeTransaction { realm.executeTransaction {
this.entriesToDelete.forEach { // entries are out of realm this.entriesToDelete.forEach { // entries are out of realm
realm.where<CustomFieldEntry>().equalTo("id", it.id).findFirst()?.deleteFromRealm() realm.where<CustomFieldEntry>().equalTo("id", it.id).findFirst()?.deleteFromRealm()

@ -64,15 +64,15 @@ open class ReportSetup : RealmObject(), RowRepresentable, Deletable {
/** /**
* Returns the Options based on the ReportSetup parameters * Returns the Options based on the ReportSetup parameters
*/ */
val options: Calculator.Options fun options(realm: Realm): Calculator.Options {
get() {
val realm = Realm.getDefaultInstance()
val stats = this.statIds.map { Stat.valueByIdentifier(it) } val stats = this.statIds.map { Stat.valueByIdentifier(it) }
// Comparison criteria // Comparison criteria
val criteria = this.criteriaIds.map { Criteria.valueByIdentifier(it) } val criteria = this.criteriaIds.map { Criteria.valueByIdentifier(it) }
val customFields = this.criteriaCustomFieldIds.mapNotNull { realm.findById<CustomField>(it) } val customFields = this.criteriaCustomFieldIds.mapNotNull { realm.findById<CustomField>(it) }
val cfCriteria = customFields.map { it.criteria } val cfCriteria = customFields.map { it.criteria }
val allCriteria = mutableListOf<Criteria>() val allCriteria = mutableListOf<Criteria>()

@ -172,7 +172,6 @@ class CalendarDetailsFragment : BaseFragment(), StaticRowRepresentableDataSource
val startDate = Date() val startDate = Date()
val realm = Realm.getDefaultInstance()
val query = Query().merge(computedResults.group.query) val query = Query().merge(computedResults.group.query)
query.remove(QueryCondition.IsCash) query.remove(QueryCondition.IsCash)
@ -188,7 +187,9 @@ class CalendarDetailsFragment : BaseFragment(), StaticRowRepresentableDataSource
stats = requiredStats, stats = requiredStats,
query = query query = query
) )
val realm = Realm.getDefaultInstance()
val report = Calculator.computeStats(realm, options) val report = Calculator.computeStats(realm, options)
realm.close()
Timber.d("Report take: ${System.currentTimeMillis() - startDate.time}ms") Timber.d("Report take: ${System.currentTimeMillis() - startDate.time}ms")

@ -152,7 +152,7 @@ class ReportsFragment : DeletableItemFragment(), StaticRowRepresentableDataSourc
launchComputation(row.criteria, reportName) launchComputation(row.criteria, reportName)
} }
is ReportSetup -> { is ReportSetup -> {
launchReportWithOptions(row.options, row.name) launchReportWithOptions(row.options(getRealm()), row.name)
} }
} }
} }

Loading…
Cancel
Save