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
val realm = Realm.getDefaultInstance()
realm.executeTransaction {
this.entriesToDelete.forEach { // entries are out of realm
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
*/
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<CustomField>(it) }
val cfCriteria = customFields.map { it.criteria }
val allCriteria = mutableListOf<Criteria>()

@ -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")

@ -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)
}
}
}

Loading…
Cancel
Save