diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/RealmFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/RealmFragment.kt index ff65a89b..77782aaa 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/RealmFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/RealmFragment.kt @@ -10,9 +10,15 @@ import io.realm.RealmResults open class RealmFragment : PokerAnalyticsFragment() { + /** + * A realm instance + */ private lateinit var realm: Realm - private var realmResultLists: MutableMap, RealmResults<*>> = mutableMapOf() + /** + * A List of observed RealmResults + */ + private var observedRealmResults: MutableList> = mutableListOf() override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { realm = Realm.getDefaultInstance() @@ -24,7 +30,7 @@ open class RealmFragment : PokerAnalyticsFragment() { this.entitiesChanged() } - this.realmResultLists[it] = realmResults + this.observedRealmResults.add(realmResults) } return super.onCreateView(inflater, container, savedInstanceState) @@ -33,7 +39,7 @@ open class RealmFragment : PokerAnalyticsFragment() { override fun onDestroyView() { super.onDestroyView() - this.realmResultLists.values.forEach { + this.observedRealmResults.forEach { it.removeAllChangeListeners() } @@ -47,8 +53,14 @@ open class RealmFragment : PokerAnalyticsFragment() { return this.realm } + /** + * A list of RealmModel classes to observe + */ open val observedEntities: List> = listOf() + /** + * The method called when a change happened in any RealmResults + */ open fun entitiesChanged() {} } \ No newline at end of file