From 8eea2ef9231d6d648cd48ebd46ef1893d450913d Mon Sep 17 00:00:00 2001 From: Nikita Fedrunov <66663241+fedrunov@users.noreply.github.com> Date: Tue, 4 Oct 2022 11:29:34 +0200 Subject: [PATCH] fixing bug when room list is not updated being on background (#7278) --- .../home/room/list/home/HomeRoomListViewModel.kt | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/home/room/list/home/HomeRoomListViewModel.kt b/vector/src/main/java/im/vector/app/features/home/room/list/home/HomeRoomListViewModel.kt index 734fc102bf..33b293497e 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/list/home/HomeRoomListViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/list/home/HomeRoomListViewModel.kt @@ -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>() + private val _roomsLivePagedList = MutableLiveData>() val roomsLivePagedList: LiveData> = _roomsLivePagedList private val internalPagedListObserver = Observer> { @@ -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() }