Обновление PagedList

Имею запрос в Room

@Query("SELECT * FROM favorite WHERE LOWER(title) LIKE LOWER(:search) ORDER BY `order` DESC")
fun getMovieListPagingFavoriteSearch(search: String): DataSource.Factory<Int, Favorite>

search - LiveData

    val query = MutableLiveData("")
val liveDataFavorite: LiveData<PagedList<Movie>> by lazy {
    database.getMovieListPagingFavoriteSearch(search = "%${query.value!!}%").map { it as Movie }
        .toLiveData(config = config)
}

Хочу без пересоздания LiveData, что обновлять свой список обновляя значение в LiveData


Ответы (1 шт):

Автор решения: Svetl9chok

Решение оказалось таким

private val favouriteFactory by lazy {
        object : DataSource.Factory<Int, Movie>() {
            override fun create(): DataSource<Int, Movie> =
                dao.getMovieListPagingFavoriteSearch("%${query.value!!}%").map { it as Movie }.create()
        }
    }

    val liveDataFavorite: LiveData<PagedList<Movie>> by lazy {
        favouriteFactory.toLiveData(config = config)
    }

И просто при смене дергать invalidate

→ Ссылка