refactor(traceroute): unified route methods for consistency

pull/1362/head
andrekir 2024-10-27 10:27:47 -03:00
rodzic 8af31bb0d0
commit b91a6d8388
1 zmienionych plików z 6 dodań i 7 usunięć

Wyświetl plik

@ -42,6 +42,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.geeksville.mesh.MeshProtos import com.geeksville.mesh.MeshProtos
import com.geeksville.mesh.R import com.geeksville.mesh.R
import com.geeksville.mesh.model.MetricsViewModel import com.geeksville.mesh.model.MetricsViewModel
import com.geeksville.mesh.model.fullRouteDiscovery
import com.geeksville.mesh.model.getTracerouteResponse import com.geeksville.mesh.model.getTracerouteResponse
import com.geeksville.mesh.ui.theme.AppTheme import com.geeksville.mesh.ui.theme.AppTheme
import java.text.DateFormat import java.text.DateFormat
@ -83,9 +84,7 @@ fun TracerouteLogScreen(
val result = remember(state.requests) { val result = remember(state.requests) {
state.results.find { it.decoded.requestId == log.fromRadio.packet.id } state.results.find { it.decoded.requestId == log.fromRadio.packet.id }
} }
val route = remember(result) { val route = remember(result) { result?.fullRouteDiscovery }
result?.let { MeshProtos.RouteDiscovery.parseFrom(it.decoded.payload) }
}
val time = dateFormat.format(log.received_date) val time = dateFormat.format(log.received_date)
val (text, icon) = route.getTextAndIcon() val (text, icon) = route.getTextAndIcon()
@ -170,17 +169,17 @@ private fun MeshProtos.RouteDiscovery?.getTextAndIcon(): Pair<String, ImageVecto
stringResource(R.string.routing_error_no_response) to Icons.Default.PersonOff stringResource(R.string.routing_error_no_response) to Icons.Default.PersonOff
} }
routeList.isEmpty() -> { routeCount <= 2 -> {
stringResource(R.string.traceroute_direct) to Icons.Default.Group stringResource(R.string.traceroute_direct) to Icons.Default.Group
} }
routeList.size == routeBackList.size -> { routeCount == routeBackCount -> {
val hops = routeList.size val hops = routeCount - 2
pluralStringResource(R.plurals.traceroute_hops, hops, hops) to Icons.Default.Groups pluralStringResource(R.plurals.traceroute_hops, hops, hops) to Icons.Default.Groups
} }
else -> { else -> {
val (towards, back) = routeList.size to routeBackList.size val (towards, back) = maxOf(0, routeCount - 2) to maxOf(0, routeBackCount - 2)
stringResource(R.string.traceroute_diff, towards, back) to Icons.Default.Groups stringResource(R.string.traceroute_diff, towards, back) to Icons.Default.Groups
} }
} }