Add elevation to places where LatLong is listed. (#4071)

This commit is contained in:
Dane Evans
2025-12-27 21:27:52 +11:00
committed by GitHub
parent 04ee221a2c
commit 2f347bbd9b
4 changed files with 14 additions and 3 deletions

View File

@@ -45,4 +45,5 @@ data class CompassUiState(
val isAligned: Boolean = false,
val hasTargetPosition: Boolean = true,
val displayUnits: DisplayUnits = DisplayUnits.METRIC,
val targetAltitude: Int? = null,
)

View File

@@ -87,6 +87,7 @@ constructor(
hasTargetPosition = targetPos != null,
displayUnits = displayUnits,
positionTimeSec = targetPositionTimeSec,
targetAltitude = node.validPosition?.altitude,
)
}

View File

@@ -37,29 +37,38 @@ import org.jetbrains.compose.resources.stringResource
import org.meshtastic.core.database.model.Node
import org.meshtastic.core.model.util.GPSFormat
import org.meshtastic.core.model.util.formatAgo
import org.meshtastic.core.model.util.metersIn
import org.meshtastic.core.model.util.toString
import org.meshtastic.core.strings.Res
import org.meshtastic.core.strings.elevation_suffix
import org.meshtastic.core.strings.last_position_update
import org.meshtastic.core.ui.component.BasicListItem
import org.meshtastic.core.ui.component.icon
import org.meshtastic.core.ui.theme.AppTheme
import org.meshtastic.core.ui.util.showToast
import org.meshtastic.proto.ConfigProtos.Config.DisplayConfig.DisplayUnits
import timber.log.Timber
import java.net.URLEncoder
@OptIn(ExperimentalFoundationApi::class)
@Composable
fun LinkedCoordinatesItem(node: Node) {
fun LinkedCoordinatesItem(node: Node, displayUnits: DisplayUnits = DisplayUnits.METRIC) {
val context = LocalContext.current
val clipboard: Clipboard = LocalClipboard.current
val coroutineScope = rememberCoroutineScope()
val ago = formatAgo(node.position.time)
val coordinates = GPSFormat.toDec(node.latitude, node.longitude)
val elevationText =
node.validPosition?.altitude?.let { altitude ->
val suffix = stringResource(Res.string.elevation_suffix)
"${altitude.metersIn(displayUnits).toString(displayUnits)} $suffix"
} ?: ""
BasicListItem(
text = stringResource(Res.string.last_position_update),
leadingIcon = Icons.Default.LocationOn,
supportingText = "$ago$coordinates",
supportingText = "$ago$coordinates$elevationText",
trailingContent = Icons.AutoMirrored.Rounded.KeyboardArrowRight.icon(),
onClick = {
val label = URLEncoder.encode(node.user.longName, "utf-8")

View File

@@ -93,7 +93,7 @@ fun PositionSection(
if (hasValidPosition) {
PositionMap(node, distance)
LinkedCoordinatesItem(node)
LinkedCoordinatesItem(node, metricsState.displayUnits)
Spacer(Modifier.height(8.dp))
}