Update Unathana portrait & fix a small title issue in the adventure detail screen.
This commit is contained in:
parent
b6489e5a85
commit
acb76e72cf
3 changed files with 23 additions and 6 deletions
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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 |
Loading…
Add table
Add a link
Reference in a new issue