Обновление 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