fixing bug when room list is not updated being on background (#7278)
This commit is contained in:
parent
8e3b9735c1
commit
8eea2ef923
@ -18,7 +18,7 @@ package im.vector.app.features.home.room.list.home
|
|||||||
|
|
||||||
import android.widget.ImageView
|
import android.widget.ImageView
|
||||||
import androidx.lifecycle.LiveData
|
import androidx.lifecycle.LiveData
|
||||||
import androidx.lifecycle.MediatorLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.Observer
|
import androidx.lifecycle.Observer
|
||||||
import androidx.paging.PagedList
|
import androidx.paging.PagedList
|
||||||
import arrow.core.toOption
|
import arrow.core.toOption
|
||||||
@ -93,7 +93,7 @@ class HomeRoomListViewModel @AssistedInject constructor(
|
|||||||
.setEnablePlaceholders(true)
|
.setEnablePlaceholders(true)
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
private val _roomsLivePagedList = MediatorLiveData<PagedList<RoomSummary>>()
|
private val _roomsLivePagedList = MutableLiveData<PagedList<RoomSummary>>()
|
||||||
val roomsLivePagedList: LiveData<PagedList<RoomSummary>> = _roomsLivePagedList
|
val roomsLivePagedList: LiveData<PagedList<RoomSummary>> = _roomsLivePagedList
|
||||||
|
|
||||||
private val internalPagedListObserver = Observer<PagedList<RoomSummary>> {
|
private val internalPagedListObserver = Observer<PagedList<RoomSummary>> {
|
||||||
@ -240,9 +240,7 @@ class HomeRoomListViewModel @AssistedInject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun observeRooms(currentFilter: HomeRoomFilter, isAZOrdering: Boolean) {
|
private fun observeRooms(currentFilter: HomeRoomFilter, isAZOrdering: Boolean) {
|
||||||
filteredPagedRoomSummariesLive?.livePagedList?.let { livePagedList ->
|
filteredPagedRoomSummariesLive?.livePagedList?.removeObserver(internalPagedListObserver)
|
||||||
_roomsLivePagedList.removeSource(livePagedList)
|
|
||||||
}
|
|
||||||
val builder = RoomSummaryQueryParams.Builder().also {
|
val builder = RoomSummaryQueryParams.Builder().also {
|
||||||
it.memberships = listOf(Membership.JOIN)
|
it.memberships = listOf(Membership.JOIN)
|
||||||
it.spaceFilter = spaceStateHandler.getCurrentSpace()?.roomId.toActiveSpaceOrNoFilter()
|
it.spaceFilter = spaceStateHandler.getCurrentSpace()?.roomId.toActiveSpaceOrNoFilter()
|
||||||
@ -260,7 +258,7 @@ class HomeRoomListViewModel @AssistedInject constructor(
|
|||||||
).also {
|
).also {
|
||||||
filteredPagedRoomSummariesLive = it
|
filteredPagedRoomSummariesLive = it
|
||||||
}
|
}
|
||||||
_roomsLivePagedList.addSource(liveResults.livePagedList, internalPagedListObserver)
|
liveResults.livePagedList.observeForever(internalPagedListObserver)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun observeOrderPreferences() {
|
private fun observeOrderPreferences() {
|
||||||
@ -343,9 +341,7 @@ class HomeRoomListViewModel @AssistedInject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onCleared() {
|
override fun onCleared() {
|
||||||
filteredPagedRoomSummariesLive?.livePagedList?.let { livePagedList ->
|
filteredPagedRoomSummariesLive?.livePagedList?.removeObserver(internalPagedListObserver)
|
||||||
_roomsLivePagedList.removeSource(livePagedList)
|
|
||||||
}
|
|
||||||
super.onCleared()
|
super.onCleared()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user