app: add post details methods to VM

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
Harsh Shandilya
2021-04-10 22:01:24 +05:30
parent 70e0b32265
commit 02b61cd36a
2 changed files with 11 additions and 0 deletions
@@ -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()
}