From 83af1e1c53f9d42003cb3751d2a31f11685df804 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Fri, 5 Mar 2021 12:40:44 +0530 Subject: [PATCH] Don't inject paging source Co-authored-by: Aditya Wasan Signed-off-by: Harsh Shandilya --- .../msfjarvis/lobsters/data/remote/LobstersPagingSource.kt | 3 +-- .../msfjarvis/lobsters/ui/viewmodel/LobstersViewModel.kt | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/dev/msfjarvis/lobsters/data/remote/LobstersPagingSource.kt b/app/src/main/java/dev/msfjarvis/lobsters/data/remote/LobstersPagingSource.kt index 766d4f88..813936b6 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/data/remote/LobstersPagingSource.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/data/remote/LobstersPagingSource.kt @@ -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() { diff --git a/app/src/main/java/dev/msfjarvis/lobsters/ui/viewmodel/LobstersViewModel.kt b/app/src/main/java/dev/msfjarvis/lobsters/ui/viewmodel/LobstersViewModel.kt index b03ee7c8..ffbf6e3b 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/ui/viewmodel/LobstersViewModel.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/ui/viewmodel/LobstersViewModel.kt @@ -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>(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) {