From d8060a7922ca65a94a56f631009713c57d418f38 Mon Sep 17 00:00:00 2001 From: NIkita Fedrunov Date: Wed, 21 Sep 2022 11:28:21 +0200 Subject: [PATCH] review fixes --- .../home/room/list/home/HomeFilteredRoomsController.kt | 8 ++++++++ .../features/home/room/list/home/HomeRoomListFragment.kt | 2 +- .../features/home/room/list/home/HomeRoomListViewModel.kt | 6 ------ 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/home/room/list/home/HomeFilteredRoomsController.kt b/vector/src/main/java/im/vector/app/features/home/room/list/home/HomeFilteredRoomsController.kt index ebf322dc23..2b4a514750 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/list/home/HomeFilteredRoomsController.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/list/home/HomeFilteredRoomsController.kt @@ -16,6 +16,7 @@ package im.vector.app.features.home.room.list.home +import androidx.paging.PagedList import com.airbnb.epoxy.EpoxyModel import com.airbnb.epoxy.paging.PagedListEpoxyController import im.vector.app.core.platform.StateView @@ -75,6 +76,13 @@ class HomeFilteredRoomsController @Inject constructor( this.emptyStateData = state } + fun submitPagedList(newList: PagedList) { + submitList(newList) + if (newList.isEmpty()) { + requestForcedModelBuild() + } + } + override fun buildItemModel(currentPosition: Int, item: RoomSummary?): EpoxyModel<*> { return if (item == null) { val host = this diff --git a/vector/src/main/java/im/vector/app/features/home/room/list/home/HomeRoomListFragment.kt b/vector/src/main/java/im/vector/app/features/home/room/list/home/HomeRoomListFragment.kt index 4d61057b59..9b8a686f37 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/list/home/HomeRoomListFragment.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/list/home/HomeRoomListFragment.kt @@ -154,7 +154,7 @@ class HomeRoomListFragment : roomListViewModel.onEach(HomeRoomListViewState::roomsPagedList) { roomsList -> roomsList?.let { - roomsController.submitList(it) + roomsController.submitPagedList(it) if (it.isEmpty()) { roomsController.requestForcedModelBuild() } 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 18ab57dce9..ad2656cec1 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 @@ -19,7 +19,6 @@ package im.vector.app.features.home.room.list.home import android.widget.ImageView import androidx.lifecycle.asFlow import androidx.paging.PagedList -import arrow.core.Option import arrow.core.toOption import com.airbnb.mvrx.MavericksViewModelFactory import dagger.assisted.Assisted @@ -37,7 +36,6 @@ import im.vector.app.features.displayname.getBestName import im.vector.app.features.home.room.list.home.header.HomeRoomFilter import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job -import kotlinx.coroutines.cancel import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.asSharedFlow @@ -46,7 +44,6 @@ import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.flatMapLatest import kotlinx.coroutines.flow.flow -import kotlinx.coroutines.flow.flowOn import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.onEach @@ -90,7 +87,6 @@ class HomeRoomListViewModel @AssistedInject constructor( companion object : MavericksViewModelFactory by hiltMavericksViewModelFactory() - private var roomsFlow: Flow>? = null private val pagedListConfig = PagedList.Config.Builder() .setPageSize(10) .setInitialLoadSizeHint(20) @@ -258,7 +254,6 @@ class HomeRoomListViewModel @AssistedInject constructor( ) emitEmptyState() } - .also { roomsFlow = it } .launchIn(viewModelScope) roomsFlowJob?.cancel(CancellationException()) @@ -268,7 +263,6 @@ class HomeRoomListViewModel @AssistedInject constructor( .onEach { setState { copy(roomsPagedList = it) } } - .flowOn(Dispatchers.Default) .launchIn(viewModelScope) }