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 androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MediatorLiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.paging.PagedList
|
||||
import arrow.core.toOption
|
||||
@ -93,7 +93,7 @@ class HomeRoomListViewModel @AssistedInject constructor(
|
||||
.setEnablePlaceholders(true)
|
||||
.build()
|
||||
|
||||
private val _roomsLivePagedList = MediatorLiveData<PagedList<RoomSummary>>()
|
||||
private val _roomsLivePagedList = MutableLiveData<PagedList<RoomSummary>>()
|
||||
val roomsLivePagedList: LiveData<PagedList<RoomSummary>> = _roomsLivePagedList
|
||||
|
||||
private val internalPagedListObserver = Observer<PagedList<RoomSummary>> {
|
||||
@ -240,9 +240,7 @@ class HomeRoomListViewModel @AssistedInject constructor(
|
||||
}
|
||||
|
||||
private fun observeRooms(currentFilter: HomeRoomFilter, isAZOrdering: Boolean) {
|
||||
filteredPagedRoomSummariesLive?.livePagedList?.let { livePagedList ->
|
||||
_roomsLivePagedList.removeSource(livePagedList)
|
||||
}
|
||||
filteredPagedRoomSummariesLive?.livePagedList?.removeObserver(internalPagedListObserver)
|
||||
val builder = RoomSummaryQueryParams.Builder().also {
|
||||
it.memberships = listOf(Membership.JOIN)
|
||||
it.spaceFilter = spaceStateHandler.getCurrentSpace()?.roomId.toActiveSpaceOrNoFilter()
|
||||
@ -260,7 +258,7 @@ class HomeRoomListViewModel @AssistedInject constructor(
|
||||
).also {
|
||||
filteredPagedRoomSummariesLive = it
|
||||
}
|
||||
_roomsLivePagedList.addSource(liveResults.livePagedList, internalPagedListObserver)
|
||||
liveResults.livePagedList.observeForever(internalPagedListObserver)
|
||||
}
|
||||
|
||||
private fun observeOrderPreferences() {
|
||||
@ -343,9 +341,7 @@ class HomeRoomListViewModel @AssistedInject constructor(
|
||||
}
|
||||
|
||||
override fun onCleared() {
|
||||
filteredPagedRoomSummariesLive?.livePagedList?.let { livePagedList ->
|
||||
_roomsLivePagedList.removeSource(livePagedList)
|
||||
}
|
||||
filteredPagedRoomSummariesLive?.livePagedList?.removeObserver(internalPagedListObserver)
|
||||
super.onCleared()
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user