diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/FeedSessionRowRepresentableAdapter.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/FeedSessionRowRepresentableAdapter.kt index acb13ad3..912d926e 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/adapter/FeedSessionRowRepresentableAdapter.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/adapter/FeedSessionRowRepresentableAdapter.kt @@ -43,7 +43,7 @@ class FeedSessionRowRepresentableAdapter( var filter: Filter? = null set(value) { field = value - filterChanged() + defineSessions() refreshData() } @@ -58,17 +58,6 @@ class FeedSessionRowRepresentableAdapter( .sort("startDate", Sort.DESCENDING) this.pendingSessions = requestNewQuery().isNull("startDate").findAll() .sort("creationDate", Sort.DESCENDING) - - // listeners - this.startedSessions.addChangeListener { _, _ -> -// Timber.d("---> started session change") - refreshData() - } - this.pendingSessions.addChangeListener { _, _ -> -// Timber.d("---> pending session change") - refreshData() - } - } private fun requestNewQuery() : RealmQuery { @@ -79,14 +68,6 @@ class FeedSessionRowRepresentableAdapter( } } - private fun filterChanged() { - - this.startedSessions.removeAllChangeListeners() - this.pendingSessions.removeAllChangeListeners() - - defineSessions() - } - /** * Display a session view */ @@ -189,12 +170,12 @@ class FeedSessionRowRepresentableAdapter( /** * Refresh headers positions */ - private fun refreshData() { + fun refreshData() { allSessions.clear() allSessions.addAll(this.pendingSessions) allSessions.addAll(this.startedSessions) - Timber.d("All sessions count = ${allSessions.size}") + Timber.d("Update session list, total count = ${allSessions.size}") val headersPositions = HashMap() @@ -222,8 +203,6 @@ class FeedSessionRowRepresentableAdapter( } sortedHeaders = headersPositions.toSortedMap() - - this.notifyDataSetChanged() Timber.d("Create viewTypesPositions in: ${System.currentTimeMillis() - start}ms") } @@ -235,9 +214,4 @@ class FeedSessionRowRepresentableAdapter( return currentCalendar.get(Calendar.YEAR) == previousYear && currentCalendar.get(Calendar.MONTH) < previousMonth || (currentCalendar.get(Calendar.YEAR) < previousYear) } - fun destroy() { - this.startedSessions.removeAllChangeListeners() - this.pendingSessions.removeAllChangeListeners() - } - } \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/FeedTransactionRowRepresentableAdapter.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/FeedTransactionRowRepresentableAdapter.kt index 22b81ed8..e66001d4 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/adapter/FeedTransactionRowRepresentableAdapter.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/adapter/FeedTransactionRowRepresentableAdapter.kt @@ -148,7 +148,6 @@ class FeedTransactionRowRepresentableAdapter( sortedHeaders = headersPositions.toSortedMap() - this.notifyDataSetChanged() } /** diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/FeedFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/FeedFragment.kt index 8634aca6..ac716528 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/FeedFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/FeedFragment.kt @@ -69,14 +69,19 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate { private var selectedTransaction: Transaction? = null private var selectedTransactionPosition: Int = -1 - override val observedEntities: List> = listOf(Transaction::class.java) + override val observedEntities: List> = listOf(Session::class.java, Transaction::class.java) override fun entitiesChanged(clazz: Class, results: RealmResults) { super.entitiesChanged(clazz, results) when (clazz.kotlin) { + Session::class -> { + this.feedSessionAdapter.refreshData() + this.feedSessionAdapter.notifyDataSetChanged() + } Transaction::class -> { this.feedTransactionAdapter.refreshData() + this.feedTransactionAdapter.notifyDataSetChanged() } } @@ -147,7 +152,6 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate { override fun onDestroyView() { super.onDestroyView() - feedSessionAdapter.destroy() realmTransactions.removeAllChangeListeners() }