From 0e85c343c00283fdbb13f0efd15c2be0afef2912 Mon Sep 17 00:00:00 2001 From: Thomas Andres Gomez Date: Fri, 10 Nov 2023 16:54:13 +0100 Subject: [PATCH] Add child destination in the mapdetail --- .../rplexicon/data/parser/map/WorldParser.kt | 7 ++- .../screens/location/detail/LocationDetail.kt | 48 +++++++++++++++++-- app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 4 files changed, 52 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/pixelized/rplexicon/data/parser/map/WorldParser.kt b/app/src/main/java/com/pixelized/rplexicon/data/parser/map/WorldParser.kt index c4b8fcc..caf905d 100644 --- a/app/src/main/java/com/pixelized/rplexicon/data/parser/map/WorldParser.kt +++ b/app/src/main/java/com/pixelized/rplexicon/data/parser/map/WorldParser.kt @@ -18,11 +18,14 @@ class WorldParser @Inject constructor() { val child = line.parse(column = CHILD) val x = line.parseFloat(column = X) val y = line.parseFloat(column = Y) - if (child != null && x != null && y != null) { + if (child != null) { val world = WorldDto( parent = parent, child = child, - position = Offset(x = x, y = y), + position = when { + x != null && y != null -> Offset(x = x, y = y) + else -> Offset.Unspecified + }, ) worlds.add(world) } diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/location/detail/LocationDetail.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/location/detail/LocationDetail.kt index 9221122..47318c2 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/location/detail/LocationDetail.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/location/detail/LocationDetail.kt @@ -14,6 +14,7 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.BoxWithConstraints import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.heightIn @@ -68,6 +69,7 @@ import com.pixelized.rplexicon.ui.composable.rememberBackgroundGradient import com.pixelized.rplexicon.ui.navigation.LocalScreenNavHost import com.pixelized.rplexicon.ui.navigation.screens.navigateToLocationDetail import com.pixelized.rplexicon.ui.theme.LexiconTheme +import com.pixelized.rplexicon.utilitary.LOS_HOLLOW import com.pixelized.rplexicon.utilitary.annotateWithDropCap import com.pixelized.rplexicon.utilitary.extentions.lexicon import kotlinx.coroutines.CoroutineScope @@ -359,12 +361,12 @@ private fun LocationContent( modifier = Modifier .fillMaxWidth() .heightIn(min = this@constraint.maxHeight) - .padding(all = 16.dp), + .padding(vertical = 16.dp), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(space = 24.dp), ) { Text( - textAlign = TextAlign.Center, + modifier = Modifier.padding(horizontal = 16.dp), style = MaterialTheme.typography.headlineSmall, text = annotateWithDropCap( text = item.value?.name ?: "", @@ -373,7 +375,9 @@ private fun LocationContent( ) item.value?.description?.let { Text( - modifier = Modifier.fillMaxWidth(), + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp), style = MaterialTheme.typography.bodyMedium, text = annotateWithDropCap( text = it, @@ -381,6 +385,44 @@ private fun LocationContent( ), ) } + if (item.value?.marquees?.isNotEmpty() == true) { + Column { + Text( + modifier = Modifier + .padding(bottom = 8.dp) + .padding(horizontal = 16.dp), + style = MaterialTheme.typography.titleMedium, + text = annotateWithDropCap( + text = stringResource(id = R.string.map_destination), + style = MaterialTheme.lexicon.typography.titleMediumDropCap, + ) + ) + item.value?.marquees?.forEach { + Row( + modifier = Modifier + .clickable { onDestination(it) } + .minimumInteractiveComponentSize() + .fillMaxWidth() + .padding(horizontal = 16.dp), + horizontalArrangement = Arrangement.spacedBy(space = 8.dp), + ) { + Text( + modifier = Modifier.alignByBaseline(), + style = MaterialTheme.typography.bodyMedium, + text = LOS_HOLLOW + ) + Text( + modifier = Modifier.alignByBaseline(), + style = MaterialTheme.typography.bodyMedium, + text = annotateWithDropCap( + text = it.name, + style = MaterialTheme.lexicon.typography.bodyMediumDropCap, + ) + ) + } + } + } + } } } } diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index f857244..9737c9b 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -88,6 +88,7 @@ Carte Coordonnées + Destinations : Talents Inventaire diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6c3c507..b6e6910 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -88,6 +88,7 @@ Map Coordinates + Destinations: Proficiencies Inventory