Fix some small graphical issue.

This commit is contained in:
Thomas Andres Gomez 2021-05-18 15:18:48 +02:00
parent a822d7f008
commit 35edef0d3a
7 changed files with 20 additions and 108 deletions

View file

@ -1,6 +1,10 @@
package com.pixelized.biblib.model
import java.util.*
data class Language (
val id : String,
val code: String,
)
) {
val displayLanguage: String by lazy { Locale(code).displayLanguage }
}

View file

@ -14,6 +14,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.style.TextOverflow
@ -59,23 +60,24 @@ fun BookThumbnailComposable(
modifier = modifier.clickable {
onClick?.invoke(thumbnail)
},
elevation = 4.dp,
) {
Row(
verticalAlignment = Alignment.CenterVertically
modifier = Modifier.height(96.dp),
) {
Image(
contentModifier = Modifier
.width(60.dp)
.height(96.dp),
.fillMaxHeight()
.clip(RoundedCornerShape(4.dp)),
placeHolder = painterResource(id = R.drawable.ic_launcher_foreground),
contentScale = ContentScale.FillBounds,
contentUrl = thumbnail.cover,
colorFilter = if (MaterialTheme.colors.isLight) ColorFilter.tint(Teal200) else null,
contentDescription = thumbnail.title
)
Column(
modifier = Modifier
.weight(1f)
.padding(8.dp)
modifier = Modifier.padding(8.dp).weight(1f)
) {
Text(
style = typography.h6,
@ -89,8 +91,7 @@ fun BookThumbnailComposable(
overflow = TextOverflow.Ellipsis,
softWrap = false,
)
Spacer(modifier = Modifier.height(8.dp))
Row {
Row(modifier = Modifier.weight(1f), verticalAlignment = Alignment.Bottom) {
Text(
style = typography.caption,
text = thumbnail.genre,
@ -98,12 +99,6 @@ fun BookThumbnailComposable(
softWrap = false,
)
Spacer(modifier = Modifier.width(4.dp))
Text(
style = typography.caption,
text = thumbnail.series ?: "",
overflow = TextOverflow.Ellipsis,
softWrap = false,
)
Spacer(
modifier = Modifier
.width(0.dp)

View file

@ -31,7 +31,7 @@ fun HomePageComposable(
LazyColumn(
Modifier.scrollable(state = scrollableState, orientation = Orientation.Vertical),
contentPadding = PaddingValues(16.dp),
verticalArrangement = Arrangement.spacedBy(16.dp),
verticalArrangement = Arrangement.spacedBy(8.dp),
state = lazyListState,
) {
items(lazyBooks) { thumbnail ->

View file

@ -9,7 +9,6 @@ data class BookThumbnailUio(
val title: String,
val author: String,
val date: String,
val series: String?,
val isNew: Boolean,
) {
val cover: URL = URL("${THUMBNAIL_URL}/$id.jpg")

View file

@ -19,6 +19,7 @@ import com.pixelized.biblib.utils.injection.inject
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.launch
import java.text.SimpleDateFormat
import java.util.*
class BooksViewModel : ViewModel(), IBooksViewModel {
@ -26,6 +27,8 @@ class BooksViewModel : ViewModel(), IBooksViewModel {
private val client: IBibLibClient by inject()
private val apiCache: IAPICacheRepository by inject()
private val formatter = SimpleDateFormat("MMMM yyyy", Locale.getDefault())
private val _state = MutableLiveData<IBooksViewModel.State>(IBooksViewModel.State.Initial)
override val state: LiveData<IBooksViewModel.State> get() = _state
@ -104,8 +107,7 @@ class BooksViewModel : ViewModel(), IBooksViewModel {
genre = genre?.joinToString { it.name } ?: "",
title = title,
author = author.joinToString { it.name },
date = releaseDate.toString(),
series = series?.name,
date = formatter.format(releaseDate).capitalize(Locale.getDefault()),
isNew = isNew,
)
@ -115,8 +117,8 @@ class BooksViewModel : ViewModel(), IBooksViewModel {
author = author.joinToString { it.name },
genre = genre?.joinToString { it.name } ?: "",
rating = rating?.toFloat() ?: 0.0f,
language = language?.code?.let { Locale(it).language } ?: "",
date = releaseDate.toString(),
language = language?.displayLanguage?.capitalize(Locale.getDefault()) ?: "",
date = formatter.format(releaseDate).capitalize(Locale.getDefault()),
series = series?.name,
description = synopsis ?: "",
)

View file

@ -1,18 +0,0 @@
package com.pixelized.biblib.utils.extention
import com.pixelized.biblib.ui.data.BookThumbnailUio
import com.pixelized.biblib.ui.data.BookUio
fun BookThumbnailUio.toBookUio(): BookUio {
return BookUio(
id = id,
title = title,
author = author,
genre = genre,
rating = 0f,
language = "",
date = date,
series = series,
description = "",
)
}

View file

@ -4,7 +4,6 @@ import com.pixelized.biblib.ui.data.BookThumbnailUio
class BookThumbnailMock {
val bookThumbnail: BookThumbnailUio by lazy {
BookThumbnailUio(
id = 0,
@ -12,76 +11,7 @@ class BookThumbnailMock {
title = "Foundation",
author = "Asimov",
date = "1951",
series = "Foundation - 1",
isNew = false,
)
}
val bookThumbnails: List<BookThumbnailUio> by lazy {
listOf(
BookThumbnailUio(
id = 112,
title = "Prélude à Fondation",
genre = "Sci-Fi",
author = "Asimov",
date = "1988",
series = "Foundation - 1",
isNew = false,
),
BookThumbnailUio(
id = 78,
title = "L'Aube de Fondation",
genre = "Sci-Fi",
author = "Asimov",
date = "1993",
series = "Foundation - 2",
isNew = false,
),
BookThumbnailUio(
id = 90,
title = "Fondation",
genre = "Sci-Fi",
author = "Asimov",
date = "1951",
series = "Foundation - 3",
isNew = false,
),
BookThumbnailUio(
id = 184,
title = "Fondation et Empire",
genre = "Sci-Fi",
author = "Asimov",
date = "1952",
series = "Foundation - 4",
isNew = false,
),
BookThumbnailUio(
id = 185,
title = "Seconde Fondation",
genre = "Sci-Fi",
author = "Asimov",
date = "1953",
series = "Foundation - 5",
isNew = false,
),
BookThumbnailUio(
id = 119,
title = "Fondation foudroyée",
genre = "Sci-Fi",
author = "Asimov",
date = "1982",
series = "Foundation - 6",
isNew = false,
),
BookThumbnailUio(
id = 163,
title = "Terre et Fondation",
genre = "Sci-Fi",
author = "Asimov",
date = "1986",
series = "Foundation - 7",
isNew = false,
),
)
}
}