mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-04-20 22:23:37 +00:00
refactor: simplify ElevationInfo component
This commit is contained in:
parent
f38a7ac0de
commit
d324f77d63
2 changed files with 9 additions and 14 deletions
|
|
@ -46,7 +46,6 @@ import androidx.compose.ui.text.style.TextDecoration
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.geeksville.mesh.ConfigProtos
|
|
||||||
import com.geeksville.mesh.ConfigProtos.Config.DeviceConfig
|
import com.geeksville.mesh.ConfigProtos.Config.DeviceConfig
|
||||||
import com.geeksville.mesh.ConfigProtos.Config.DisplayConfig
|
import com.geeksville.mesh.ConfigProtos.Config.DisplayConfig
|
||||||
import com.geeksville.mesh.MeshProtos
|
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.compose.SatelliteCountInfo
|
||||||
import com.geeksville.mesh.ui.preview.NodeEntityPreviewParameterProvider
|
import com.geeksville.mesh.ui.preview.NodeEntityPreviewParameterProvider
|
||||||
import com.geeksville.mesh.ui.theme.AppTheme
|
import com.geeksville.mesh.ui.theme.AppTheme
|
||||||
import com.geeksville.mesh.util.metersIn
|
|
||||||
import com.geeksville.mesh.util.toDistanceString
|
import com.geeksville.mesh.util.toDistanceString
|
||||||
|
|
||||||
@Suppress("LongMethod", "CyclomaticComplexMethod")
|
@Suppress("LongMethod", "CyclomaticComplexMethod")
|
||||||
|
|
@ -83,9 +81,9 @@ fun NodeItem(
|
||||||
val longName = thatNode.user.longName.ifEmpty { stringResource(id = R.string.unknown_username) }
|
val longName = thatNode.user.longName.ifEmpty { stringResource(id = R.string.unknown_username) }
|
||||||
|
|
||||||
val isThisNode = thisNode?.num == thatNode.num
|
val isThisNode = thisNode?.num == thatNode.num
|
||||||
val distance = thisNode?.distance(thatNode)?.let {
|
val system = remember(distanceUnits) { DisplayConfig.DisplayUnits.forNumber(distanceUnits) }
|
||||||
val system = DisplayConfig.DisplayUnits.forNumber(distanceUnits)
|
val distance = remember(thisNode, thatNode) {
|
||||||
if (it == 0) null else it.toDistanceString(system)
|
thisNode?.distance(thatNode)?.takeIf { it > 0 }?.toDistanceString(system)
|
||||||
}
|
}
|
||||||
val (textColor, nodeColor) = thatNode.colors
|
val (textColor, nodeColor) = thatNode.colors
|
||||||
|
|
||||||
|
|
@ -274,15 +272,11 @@ fun NodeItem(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val system =
|
|
||||||
ConfigProtos.Config.DisplayConfig.DisplayUnits.forNumber(distanceUnits)
|
|
||||||
thatNode.validPosition?.let { position ->
|
thatNode.validPosition?.let { position ->
|
||||||
val altitude = position.altitude.metersIn(system)
|
|
||||||
val elevationSuffix = stringResource(id = R.string.elevation_suffix)
|
|
||||||
ElevationInfo(
|
ElevationInfo(
|
||||||
altitude = altitude,
|
altitude = position.altitude,
|
||||||
system = system,
|
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.text.withStyle
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import com.geeksville.mesh.ConfigProtos.Config.DisplayConfig.DisplayUnits
|
import com.geeksville.mesh.ConfigProtos.Config.DisplayConfig.DisplayUnits
|
||||||
|
import com.geeksville.mesh.util.metersIn
|
||||||
import com.geeksville.mesh.util.toString
|
import com.geeksville.mesh.util.toString
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ElevationInfo(
|
fun ElevationInfo(
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
altitude: Float,
|
altitude: Int,
|
||||||
system: DisplayUnits,
|
system: DisplayUnits,
|
||||||
suffix: String
|
suffix: String
|
||||||
) {
|
) {
|
||||||
val annotatedString = buildAnnotatedString {
|
val annotatedString = buildAnnotatedString {
|
||||||
append(altitude.toString(system))
|
append(altitude.metersIn(system).toString(system))
|
||||||
MaterialTheme.typography.overline.toSpanStyle().let { style ->
|
MaterialTheme.typography.overline.toSpanStyle().let { style ->
|
||||||
withStyle(style) {
|
withStyle(style) {
|
||||||
append(" $suffix")
|
append(" $suffix")
|
||||||
|
|
@ -38,7 +39,7 @@ fun ElevationInfo(
|
||||||
fun ElevationInfoPreview() {
|
fun ElevationInfoPreview() {
|
||||||
MaterialTheme {
|
MaterialTheme {
|
||||||
ElevationInfo(
|
ElevationInfo(
|
||||||
altitude = 100.0f,
|
altitude = 100,
|
||||||
system = DisplayUnits.METRIC,
|
system = DisplayUnits.METRIC,
|
||||||
suffix = "ASL"
|
suffix = "ASL"
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue