app: switch to SQLDelight version of LobstersPost

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
Harsh Shandilya 2020-12-08 16:59:22 +05:30
parent b18de72bdd
commit bca96ae215
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
6 changed files with 12 additions and 37 deletions

View file

@ -2,7 +2,7 @@ package dev.msfjarvis.lobsters.data.remote
import androidx.paging.PagingSource import androidx.paging.PagingSource
import dev.msfjarvis.lobsters.data.api.LobstersApi import dev.msfjarvis.lobsters.data.api.LobstersApi
import dev.msfjarvis.lobsters.model.LobstersPost import dev.msfjarvis.lobsters.data.local.LobstersPost
import javax.inject.Inject import javax.inject.Inject
class LobstersPagingSource @Inject constructor( class LobstersPagingSource @Inject constructor(

View file

@ -7,7 +7,7 @@ import androidx.compose.ui.Modifier
import androidx.paging.LoadState import androidx.paging.LoadState
import androidx.paging.compose.LazyPagingItems import androidx.paging.compose.LazyPagingItems
import androidx.paging.compose.items 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 import dev.msfjarvis.lobsters.ui.urllauncher.AmbientUrlLauncher
@Composable @Composable
@ -30,8 +30,8 @@ fun HottestPosts(
if (item != null) { if (item != null) {
LobstersItem( LobstersItem(
post = item, post = item,
onClick = { urlLauncher.launch(item.url.ifEmpty { item.commentsUrl }) }, onClick = { urlLauncher.launch(item.url.ifEmpty { item.comments_url }) },
onLongClick = { urlLauncher.launch(item.commentsUrl) }, onLongClick = { urlLauncher.launch(item.comments_url) },
onSaveButtonClick = { saveAction.invoke(item) }, onSaveButtonClick = { saveAction.invoke(item) },
) )
} }

View file

@ -24,7 +24,7 @@ import coil.transform.CircleCropTransformation
import dev.chrisbanes.accompanist.coil.CoilImage import dev.chrisbanes.accompanist.coil.CoilImage
import dev.msfjarvis.lobsters.R import dev.msfjarvis.lobsters.R
import dev.msfjarvis.lobsters.data.api.LobstersApi 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.model.Submitter
import dev.msfjarvis.lobsters.ui.theme.LobstersTheme import dev.msfjarvis.lobsters.ui.theme.LobstersTheme
import dev.msfjarvis.lobsters.ui.theme.titleColor import dev.msfjarvis.lobsters.ui.theme.titleColor
@ -55,6 +55,7 @@ val TEST_POST = LobstersPost(
emptyList(), emptyList(),
), ),
listOf("openbsd", "linux", "containers", "hack the planet", "no thanks"), listOf("openbsd", "linux", "containers", "hack the planet", "no thanks"),
0,
) )
@Composable @Composable
@ -96,7 +97,7 @@ fun LobstersItem(
.padding(vertical = 8.dp), .padding(vertical = 8.dp),
) )
CoilImage( CoilImage(
data = "${LobstersApi.BASE_URL}/${post.submitterUser.avatarUrl}", data = "${LobstersApi.BASE_URL}/${post.submitter_user.avatarUrl}",
fadeIn = true, fadeIn = true,
requestBuilder = { requestBuilder = {
transformations(CircleCropTransformation()) transformations(CircleCropTransformation())
@ -110,7 +111,7 @@ fun LobstersItem(
}, },
) )
Text( Text(
text = stringResource(id = R.string.submitted_by, post.submitterUser.username), text = stringResource(id = R.string.submitted_by, post.submitter_user.username),
modifier = Modifier modifier = Modifier
.padding(4.dp) .padding(4.dp)
.constrainAs(submitter) { .constrainAs(submitter) {

View file

@ -4,7 +4,7 @@ import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier 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 import dev.msfjarvis.lobsters.ui.urllauncher.AmbientUrlLauncher
@Composable @Composable
@ -26,8 +26,8 @@ fun SavedPosts(
items(posts) { item -> items(posts) { item ->
LobstersItem( LobstersItem(
post = item, post = item,
onClick = { urlLauncher.launch(item.url.ifEmpty { item.commentsUrl }) }, onClick = { urlLauncher.launch(item.url.ifEmpty { item.comments_url }) },
onLongClick = { urlLauncher.launch(item.commentsUrl) }, onLongClick = { urlLauncher.launch(item.comments_url) },
onSaveButtonClick = { saveAction.invoke(item) }, onSaveButtonClick = { saveAction.invoke(item) },
) )
} }

View file

@ -6,7 +6,7 @@ import androidx.paging.Pager
import androidx.paging.PagingConfig import androidx.paging.PagingConfig
import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.lifecycle.HiltViewModel
import dev.msfjarvis.lobsters.data.remote.LobstersPagingSource 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.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.launch import kotlinx.coroutines.launch

View file

@ -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>,
)