app: add post details methods to VM
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
@@ -4,6 +4,7 @@ import dev.msfjarvis.lobsters.data.api.LobstersApi
|
||||
import dev.msfjarvis.lobsters.data.local.SavedPost
|
||||
import dev.msfjarvis.lobsters.database.LobstersDatabase
|
||||
import dev.msfjarvis.lobsters.model.LobstersPost
|
||||
import dev.msfjarvis.lobsters.model.LobstersPostDetails
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.asStateFlow
|
||||
@@ -36,6 +37,11 @@ class LobstersRepository(
|
||||
return@withContext lobstersApi.getNewestPosts(page)
|
||||
}
|
||||
|
||||
suspend fun fetchPostDetails(postId: String): LobstersPostDetails =
|
||||
withContext(Dispatchers.IO) {
|
||||
return@withContext lobstersApi.getPostDetails(postId)
|
||||
}
|
||||
|
||||
// https://issuetracker.google.com/issues/181221325
|
||||
@Suppress("NewApi")
|
||||
suspend fun updateCache() {
|
||||
|
||||
@@ -11,6 +11,7 @@ import dev.msfjarvis.lobsters.data.preferences.ClawPreferences
|
||||
import dev.msfjarvis.lobsters.data.remote.HottestPostsPagingSource
|
||||
import dev.msfjarvis.lobsters.data.remote.NewestPostsPagingSource
|
||||
import dev.msfjarvis.lobsters.data.repo.LobstersRepository
|
||||
import dev.msfjarvis.lobsters.model.LobstersPostDetails
|
||||
import javax.inject.Inject
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
@@ -62,6 +63,10 @@ constructor(
|
||||
clawPreferences.toggleSortingOrder()
|
||||
}
|
||||
|
||||
suspend fun getPostDetails(postId: String): LobstersPostDetails {
|
||||
return lobstersRepository.fetchPostDetails(postId)
|
||||
}
|
||||
|
||||
fun reloadHottestPosts() {
|
||||
hottestPostsPagingSource?.invalidate()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user