Update Unathana portrait & fix a small title issue in the adventure detail screen.

This commit is contained in:
Andres Gomez, Thomas (ITDV RL) 2024-06-20 10:27:31 +02:00
parent b6489e5a85
commit acb76e72cf
3 changed files with 23 additions and 6 deletions

View file

@ -27,6 +27,7 @@ import androidx.compose.runtime.Stable
import androidx.compose.runtime.State
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.mutableFloatStateOf
import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.saveable.Saver
@ -74,7 +75,8 @@ fun AdventureDetailScreen(
.fillMaxSize()
.navigationBarsPadding(),
background = viewModel.background,
adventureTitle = viewModel.title,
title = viewModel.title,
titleIndex = viewModel.titleIndex,
adventures = viewModel.adventure,
onBack = { screen.popBackStack() },
)
@ -98,7 +100,8 @@ private fun AdventureDetailContent(
bottom = 16.dp,
),
lazyListState: LazyListState = rememberLazyListState(),
adventureTitle: State<String?>,
title: State<String?>,
titleIndex: State<Int>,
background: State<Uri?>,
adventures: State<List<AdventureLineUio>>,
onBack: () -> Unit,
@ -177,7 +180,7 @@ private fun AdventureDetailContent(
modifier = Modifier.alpha(alpha = alpha.value),
overflow = TextOverflow.Ellipsis,
maxLines = 1,
text = adventureTitle.value ?: "",
text = title.value ?: "",
)
},
)
@ -191,7 +194,7 @@ private fun AdventureDetailContent(
val previous = adventures.value.getOrNull(index - 1)
AdventureLine(
modifier = when {
titleLayoutInfo.value == null && adventure.style == TITLE -> {
titleLayoutInfo.value == null && titleIndex.value == index -> {
Modifier.onGloballyPositioned { coordinate ->
titleLayoutInfo.value = TitleLayoutInfo(
position = coordinate.positionInParent().y,
@ -248,9 +251,12 @@ private fun AdventureDetailPreview() {
LexiconTheme {
Surface {
AdventureDetailContent(
adventureTitle = remember {
title = remember {
mutableStateOf("La traque")
},
titleIndex = remember {
mutableIntStateOf(0)
},
background = remember {
mutableStateOf(
"https://img.freepik.com/premium-photo/painting-deer-forest-with-stream-water-generative-ai_955925-17321.jpg".toUri()

View file

@ -27,6 +27,7 @@ class AdventureDetailViewModel @Inject constructor(
val background = derivedStateOf {
_detail.value?.storyBackground
}
val adventure = derivedStateOf {
_detail.value?.story?.map { line ->
AdventureLineUio(
@ -43,7 +44,17 @@ class AdventureDetailViewModel @Inject constructor(
)
} ?: emptyList()
}
private val titleCell = derivedStateOf {
adventure.value.let { adventures ->
adventures.firstOrNull { it.style == Style.TITLE }
?: adventures.firstOrNull()
}
}
val title = derivedStateOf {
adventure.value.firstOrNull()?.text
titleCell.value?.text ?: ""
}
val titleIndex = derivedStateOf {
adventure.value.indexOf(titleCell.value)
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Before After
Before After