mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-02-07 14:22:39 -05:00
refactor: simplify ElevationInfo component
This commit is contained in:
@@ -46,7 +46,6 @@ import androidx.compose.ui.text.style.TextDecoration
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.geeksville.mesh.ConfigProtos
|
||||
import com.geeksville.mesh.ConfigProtos.Config.DeviceConfig
|
||||
import com.geeksville.mesh.ConfigProtos.Config.DisplayConfig
|
||||
import com.geeksville.mesh.MeshProtos
|
||||
@@ -60,7 +59,6 @@ import com.geeksville.mesh.ui.compose.ElevationInfo
|
||||
import com.geeksville.mesh.ui.compose.SatelliteCountInfo
|
||||
import com.geeksville.mesh.ui.preview.NodeEntityPreviewParameterProvider
|
||||
import com.geeksville.mesh.ui.theme.AppTheme
|
||||
import com.geeksville.mesh.util.metersIn
|
||||
import com.geeksville.mesh.util.toDistanceString
|
||||
|
||||
@Suppress("LongMethod", "CyclomaticComplexMethod")
|
||||
@@ -83,9 +81,9 @@ fun NodeItem(
|
||||
val longName = thatNode.user.longName.ifEmpty { stringResource(id = R.string.unknown_username) }
|
||||
|
||||
val isThisNode = thisNode?.num == thatNode.num
|
||||
val distance = thisNode?.distance(thatNode)?.let {
|
||||
val system = DisplayConfig.DisplayUnits.forNumber(distanceUnits)
|
||||
if (it == 0) null else it.toDistanceString(system)
|
||||
val system = remember(distanceUnits) { DisplayConfig.DisplayUnits.forNumber(distanceUnits) }
|
||||
val distance = remember(thisNode, thatNode) {
|
||||
thisNode?.distance(thatNode)?.takeIf { it > 0 }?.toDistanceString(system)
|
||||
}
|
||||
val (textColor, nodeColor) = thatNode.colors
|
||||
|
||||
@@ -274,15 +272,11 @@ fun NodeItem(
|
||||
)
|
||||
}
|
||||
}
|
||||
val system =
|
||||
ConfigProtos.Config.DisplayConfig.DisplayUnits.forNumber(distanceUnits)
|
||||
thatNode.validPosition?.let { position ->
|
||||
val altitude = position.altitude.metersIn(system)
|
||||
val elevationSuffix = stringResource(id = R.string.elevation_suffix)
|
||||
ElevationInfo(
|
||||
altitude = altitude,
|
||||
altitude = position.altitude,
|
||||
system = system,
|
||||
suffix = elevationSuffix
|
||||
suffix = stringResource(id = R.string.elevation_suffix)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,17 +8,18 @@ import androidx.compose.ui.text.buildAnnotatedString
|
||||
import androidx.compose.ui.text.withStyle
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import com.geeksville.mesh.ConfigProtos.Config.DisplayConfig.DisplayUnits
|
||||
import com.geeksville.mesh.util.metersIn
|
||||
import com.geeksville.mesh.util.toString
|
||||
|
||||
@Composable
|
||||
fun ElevationInfo(
|
||||
modifier: Modifier = Modifier,
|
||||
altitude: Float,
|
||||
altitude: Int,
|
||||
system: DisplayUnits,
|
||||
suffix: String
|
||||
) {
|
||||
val annotatedString = buildAnnotatedString {
|
||||
append(altitude.toString(system))
|
||||
append(altitude.metersIn(system).toString(system))
|
||||
MaterialTheme.typography.overline.toSpanStyle().let { style ->
|
||||
withStyle(style) {
|
||||
append(" $suffix")
|
||||
@@ -38,7 +39,7 @@ fun ElevationInfo(
|
||||
fun ElevationInfoPreview() {
|
||||
MaterialTheme {
|
||||
ElevationInfo(
|
||||
altitude = 100.0f,
|
||||
altitude = 100,
|
||||
system = DisplayUnits.METRIC,
|
||||
suffix = "ASL"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user