Clean realm management (close and remove listeners)

feature/top10
Aurelien Hubert 7 years ago
parent 1e988d0515
commit eab143abee
  1. 4
      app/src/main/java/net/pokeranalytics/android/ui/fragment/DataListFragment.kt
  2. 15
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/SessionObserverFragment.kt

@ -7,7 +7,6 @@ import android.view.ViewGroup
import androidx.recyclerview.widget.ItemTouchHelper
import androidx.recyclerview.widget.LinearLayoutManager
import com.google.android.material.snackbar.Snackbar
import io.realm.Realm
import io.realm.RealmObject
import io.realm.RealmResults
import kotlinx.android.synthetic.main.fragment_data_list.*
@ -159,9 +158,8 @@ class DataListFragment : PokerAnalyticsFragment(), LiveRowRepresentableDataSourc
fun setData(dataType: Int) {
this.dataType = SettingRow.values()[dataType]
this.toolbar.title = this.dataType.localizedTitle(requireContext())
val realm = Realm.getDefaultInstance()
this.dataType.relatedResultsRepresentable?.let {
this.items = it.items(realm)
this.items = it.items(getRealm())
}
}
}

@ -1,21 +1,26 @@
package net.pokeranalytics.android.ui.fragment.components
import io.realm.Realm
import android.os.Bundle
import io.realm.RealmResults
import net.pokeranalytics.android.model.realm.ComputableResult
open class SessionObserverFragment : PokerAnalyticsFragment() {
val endedSessions: RealmResults<ComputableResult>
private lateinit var endedSessions: RealmResults<ComputableResult>
init {
val realm = Realm.getDefaultInstance()
this.endedSessions = realm.where(ComputableResult::class.java).findAll() // ComputableResult are existing only if sessions are ended
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
this.endedSessions = getRealm().where(ComputableResult::class.java).findAll() // ComputableResult are existing only if sessions are ended
this.endedSessions.addChangeListener { _, _ ->
this.sessionsChanged()
}
}
override fun onDestroyView() {
super.onDestroyView()
endedSessions.removeAllChangeListeners()
}
open fun sessionsChanged() {
// to override
}

Loading…
Cancel
Save