feat: default pager to SSTV, remove radar plot drag, filter B track by elevation>0

This commit is contained in:
atsunatsu committed 2026-08-03 03:44:37 +08:00
1 parent 81ae8772d2
commit fb28283679
3 files changed
+5 -18

No files matched your search

@@ -18,8 +18,6 @@
package com.rtbishop.look4sat.feature.mutual
import androidx.compose.foundation.Canvas
import androidx.compose.foundation.gestures.detectDragGestures
import androidx.compose.foundation.gestures.detectTapGestures
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
@@ -36,7 +34,6 @@ import androidx.compose.ui.graphics.Path
import androidx.compose.ui.graphics.PathEffect
import androidx.compose.ui.graphics.drawscope.DrawScope
import androidx.compose.ui.graphics.drawscope.Stroke
import androidx.compose.ui.input.pointer.pointerInput
import androidx.compose.ui.text.TextMeasurer
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.drawText
@@ -60,7 +57,6 @@ private const val STROKE_WIDTH = 2.5f
fun MutualRadarView(
trackSamples: List<TrackSample>,
progress: Float = 0.5f,
onProgressChange: (Float) -> Unit = {},
labelA: String = "站点A",
labelB: String = "站点B",
modifier: Modifier = Modifier
@@ -86,16 +82,6 @@ fun MutualRadarView(
.fillMaxWidth()
.aspectRatio(1f)
.padding(4.dp)
.pointerInput(Unit) {
detectTapGestures { offset ->
onProgressChange((offset.x / size.width.toFloat()).coerceIn(0f, 1f))
}
}
.pointerInput(Unit) {
detectDragGestures { change, _ ->
onProgressChange((change.position.x / size.width.toFloat()).coerceIn(0f, 1f))
}
}
) {
val radius = size.minDimension / 2f * 0.92f
val center = Offset(size.width / 2f, size.height / 2f)
@@ -433,7 +433,6 @@ private fun MutualPassCard(
MutualRadarView(
trackSamples = pass.trackSamples,
progress = dragProgress,
onProgressChange = { dragProgress = it },
labelA = "你",
labelB = "友台"
)
@@ -118,10 +118,12 @@ private fun RadarScreen(
val addToCalendar: () -> Unit = {
uiState.currentPass?.let { onAction(RadarAction.AddToCalendar(it.name, it.aosTime, it.losTime)) }
}
// Station-B overlay: full track line (not time-limited) + live position dot
// Station-B overlay: full track line (only where B's elevation > 0) + live position dot
// at the current moment, same display mode as the local station.
val trackB = remember(mutualData.trackSamples) {
mutualData.trackSamples.map {
mutualData.trackSamples
.filter { it.elevationB > 0.0 }
.map {
OrbitalPos(
azimuth = it.azimuthB * PI / 180.0,
elevation = it.elevationB * PI / 180.0,
@@ -182,7 +184,7 @@ private fun PagerCard(
modifier: Modifier = Modifier
) {
val pages = RadarPage.entries
val pagerState = rememberPagerState(pageCount = { pages.size })
val pagerState = rememberPagerState(initialPage = 1, pageCount = { pages.size })
val coroutineScope = rememberCoroutineScope()
ElevatedCard(modifier = modifier) {