mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-03-31 20:21:36 -04:00
Add elevation to places where LatLong is listed. (#4071)
This commit is contained in:
@@ -45,4 +45,5 @@ data class CompassUiState(
|
||||
val isAligned: Boolean = false,
|
||||
val hasTargetPosition: Boolean = true,
|
||||
val displayUnits: DisplayUnits = DisplayUnits.METRIC,
|
||||
val targetAltitude: Int? = null,
|
||||
)
|
||||
|
||||
@@ -87,6 +87,7 @@ constructor(
|
||||
hasTargetPosition = targetPos != null,
|
||||
displayUnits = displayUnits,
|
||||
positionTimeSec = targetPositionTimeSec,
|
||||
targetAltitude = node.validPosition?.altitude,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -93,7 +93,7 @@ fun PositionSection(
|
||||
|
||||
if (hasValidPosition) {
|
||||
PositionMap(node, distance)
|
||||
LinkedCoordinatesItem(node)
|
||||
LinkedCoordinatesItem(node, metricsState.displayUnits)
|
||||
Spacer(Modifier.height(8.dp))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user