mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 19:57:04 +05:30
android: add post details methods to VM
This commit is contained in:
parent
f2fdfac4ad
commit
7c306acfa9
1 changed files with 9 additions and 1 deletions
|
@ -7,19 +7,22 @@ import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import dev.msfjarvis.claw.android.paging.LobstersPagingSource
|
import dev.msfjarvis.claw.android.paging.LobstersPagingSource
|
||||||
import dev.msfjarvis.claw.api.LobstersApi
|
import dev.msfjarvis.claw.api.LobstersApi
|
||||||
import dev.msfjarvis.claw.database.local.SavedPost
|
import dev.msfjarvis.claw.database.local.SavedPost
|
||||||
|
import dev.msfjarvis.claw.model.LobstersPostDetails
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
import kotlinx.coroutines.flow.collect
|
import kotlinx.coroutines.flow.collect
|
||||||
import kotlinx.coroutines.flow.flow
|
import kotlinx.coroutines.flow.flow
|
||||||
import kotlinx.coroutines.flow.last
|
import kotlinx.coroutines.flow.last
|
||||||
import kotlinx.coroutines.flow.mapLatest
|
import kotlinx.coroutines.flow.mapLatest
|
||||||
|
import kotlinx.coroutines.withContext
|
||||||
|
|
||||||
@OptIn(ExperimentalCoroutinesApi::class)
|
@OptIn(ExperimentalCoroutinesApi::class)
|
||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
class ClawViewModel
|
class ClawViewModel
|
||||||
@Inject
|
@Inject
|
||||||
constructor(
|
constructor(
|
||||||
api: LobstersApi,
|
private val api: LobstersApi,
|
||||||
private val repository: SavedPostsRepository,
|
private val repository: SavedPostsRepository,
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
var lastPagingSource: LobstersPagingSource? = null
|
var lastPagingSource: LobstersPagingSource? = null
|
||||||
|
@ -46,6 +49,11 @@ constructor(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
suspend fun getPostComments(postId: String): LobstersPostDetails =
|
||||||
|
withContext(Dispatchers.IO) {
|
||||||
|
return@withContext api.getPostDetails(postId)
|
||||||
|
}
|
||||||
|
|
||||||
fun reloadPosts() {
|
fun reloadPosts() {
|
||||||
lastPagingSource?.invalidate()
|
lastPagingSource?.invalidate()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue