mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-17 22:37:03 +05:30
app: switch to SQLDelight version of LobstersPost
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
parent
b18de72bdd
commit
bca96ae215
6 changed files with 12 additions and 37 deletions
|
@ -2,7 +2,7 @@ package dev.msfjarvis.lobsters.data.remote
|
|||
|
||||
import androidx.paging.PagingSource
|
||||
import dev.msfjarvis.lobsters.data.api.LobstersApi
|
||||
import dev.msfjarvis.lobsters.model.LobstersPost
|
||||
import dev.msfjarvis.lobsters.data.local.LobstersPost
|
||||
import javax.inject.Inject
|
||||
|
||||
class LobstersPagingSource @Inject constructor(
|
||||
|
|
|
@ -7,7 +7,7 @@ import androidx.compose.ui.Modifier
|
|||
import androidx.paging.LoadState
|
||||
import androidx.paging.compose.LazyPagingItems
|
||||
import androidx.paging.compose.items
|
||||
import dev.msfjarvis.lobsters.model.LobstersPost
|
||||
import dev.msfjarvis.lobsters.data.local.LobstersPost
|
||||
import dev.msfjarvis.lobsters.ui.urllauncher.AmbientUrlLauncher
|
||||
|
||||
@Composable
|
||||
|
@ -30,8 +30,8 @@ fun HottestPosts(
|
|||
if (item != null) {
|
||||
LobstersItem(
|
||||
post = item,
|
||||
onClick = { urlLauncher.launch(item.url.ifEmpty { item.commentsUrl }) },
|
||||
onLongClick = { urlLauncher.launch(item.commentsUrl) },
|
||||
onClick = { urlLauncher.launch(item.url.ifEmpty { item.comments_url }) },
|
||||
onLongClick = { urlLauncher.launch(item.comments_url) },
|
||||
onSaveButtonClick = { saveAction.invoke(item) },
|
||||
)
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ import coil.transform.CircleCropTransformation
|
|||
import dev.chrisbanes.accompanist.coil.CoilImage
|
||||
import dev.msfjarvis.lobsters.R
|
||||
import dev.msfjarvis.lobsters.data.api.LobstersApi
|
||||
import dev.msfjarvis.lobsters.model.LobstersPost
|
||||
import dev.msfjarvis.lobsters.data.local.LobstersPost
|
||||
import dev.msfjarvis.lobsters.model.Submitter
|
||||
import dev.msfjarvis.lobsters.ui.theme.LobstersTheme
|
||||
import dev.msfjarvis.lobsters.ui.theme.titleColor
|
||||
|
@ -55,6 +55,7 @@ val TEST_POST = LobstersPost(
|
|||
emptyList(),
|
||||
),
|
||||
listOf("openbsd", "linux", "containers", "hack the planet", "no thanks"),
|
||||
0,
|
||||
)
|
||||
|
||||
@Composable
|
||||
|
@ -96,7 +97,7 @@ fun LobstersItem(
|
|||
.padding(vertical = 8.dp),
|
||||
)
|
||||
CoilImage(
|
||||
data = "${LobstersApi.BASE_URL}/${post.submitterUser.avatarUrl}",
|
||||
data = "${LobstersApi.BASE_URL}/${post.submitter_user.avatarUrl}",
|
||||
fadeIn = true,
|
||||
requestBuilder = {
|
||||
transformations(CircleCropTransformation())
|
||||
|
@ -110,7 +111,7 @@ fun LobstersItem(
|
|||
},
|
||||
)
|
||||
Text(
|
||||
text = stringResource(id = R.string.submitted_by, post.submitterUser.username),
|
||||
text = stringResource(id = R.string.submitted_by, post.submitter_user.username),
|
||||
modifier = Modifier
|
||||
.padding(4.dp)
|
||||
.constrainAs(submitter) {
|
||||
|
|
|
@ -4,7 +4,7 @@ import androidx.compose.foundation.lazy.LazyColumn
|
|||
import androidx.compose.foundation.lazy.rememberLazyListState
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import dev.msfjarvis.lobsters.model.LobstersPost
|
||||
import dev.msfjarvis.lobsters.data.local.LobstersPost
|
||||
import dev.msfjarvis.lobsters.ui.urllauncher.AmbientUrlLauncher
|
||||
|
||||
@Composable
|
||||
|
@ -26,8 +26,8 @@ fun SavedPosts(
|
|||
items(posts) { item ->
|
||||
LobstersItem(
|
||||
post = item,
|
||||
onClick = { urlLauncher.launch(item.url.ifEmpty { item.commentsUrl }) },
|
||||
onLongClick = { urlLauncher.launch(item.commentsUrl) },
|
||||
onClick = { urlLauncher.launch(item.url.ifEmpty { item.comments_url }) },
|
||||
onLongClick = { urlLauncher.launch(item.comments_url) },
|
||||
onSaveButtonClick = { saveAction.invoke(item) },
|
||||
)
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ import androidx.paging.Pager
|
|||
import androidx.paging.PagingConfig
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import dev.msfjarvis.lobsters.data.remote.LobstersPagingSource
|
||||
import dev.msfjarvis.lobsters.model.LobstersPost
|
||||
import dev.msfjarvis.lobsters.data.local.LobstersPost
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.asStateFlow
|
||||
import kotlinx.coroutines.launch
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
package dev.msfjarvis.lobsters.model
|
||||
|
||||
import com.squareup.moshi.Json
|
||||
import com.squareup.moshi.JsonClass
|
||||
|
||||
@JsonClass(generateAdapter = true)
|
||||
class LobstersPost(
|
||||
@Json(name = "short_id")
|
||||
val shortId: String,
|
||||
@Json(name = "short_id_url")
|
||||
val shortIdUrl: String,
|
||||
@Json(name = "created_at")
|
||||
val createdAt: String,
|
||||
val title: String,
|
||||
val url: String,
|
||||
val score: Long,
|
||||
val flags: Long,
|
||||
@Json(name = "comment_count")
|
||||
val commentCount: Long,
|
||||
val description: String,
|
||||
@Json(name = "comments_url")
|
||||
val commentsUrl: String,
|
||||
@Json(name = "submitter_user")
|
||||
val submitterUser: Submitter,
|
||||
val tags: List<String>,
|
||||
)
|
Loading…
Add table
Add a link
Reference in a new issue