Don't inject paging source

Co-authored-by: Aditya Wasan <adityawasan55@gmail.com>
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
Harsh Shandilya 2021-03-05 12:40:44 +05:30
parent 4585757ac2
commit 83af1e1c53
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
2 changed files with 4 additions and 5 deletions

View file

@ -4,9 +4,8 @@ import androidx.paging.PagingSource
import androidx.paging.PagingState
import dev.msfjarvis.lobsters.data.repo.LobstersRepository
import dev.msfjarvis.lobsters.model.LobstersPost
import javax.inject.Inject
class LobstersPagingSource @Inject constructor(
class LobstersPagingSource constructor(
private val lobstersRepository: LobstersRepository,
) : PagingSource<Int, LobstersPost>() {

View file

@ -19,13 +19,13 @@ import kotlinx.coroutines.launch
@HiltViewModel
class LobstersViewModel @Inject constructor(
private val lobstersRepository: LobstersRepository,
private val pagingSource: LobstersPagingSource,
) : ViewModel() {
private val _savedPosts = MutableStateFlow<List<SavedPost>>(emptyList())
val savedPosts = _savedPosts.asStateFlow()
val posts = Pager(PagingConfig(25)) {
pagingSource
LobstersPagingSource(lobstersRepository).also { pagingSource = it }
}.flow.cachedIn(viewModelScope)
private var pagingSource: LobstersPagingSource? = null
init {
lobstersRepository.isCacheReady.onEach { ready ->
@ -36,7 +36,7 @@ class LobstersViewModel @Inject constructor(
}
fun reloadPosts() {
pagingSource.invalidate()
pagingSource?.invalidate()
}
fun toggleSave(post: SavedPost) {