From fb2828367957e57bd7b2b59007af9c152d42909b Mon Sep 17 00:00:00 2001 From: atsunatsu Date: Mon, 3 Aug 2026 03:44:37 +0800 Subject: [PATCH] feat: default pager to SSTV, remove radar plot drag, filter B track by elevation>0 --- .../feature/mutual/MutualRadarView.kt | 14 ------------- .../look4sat/feature/mutual/MutualScreen.kt | 1 - .../look4sat/feature/radar/RadarScreen.kt | 20 ++++++++++--------- 3 files changed, 11 insertions(+), 24 deletions(-) diff --git a/feature/mutual/src/main/java/com/rtbishop/look4sat/feature/mutual/MutualRadarView.kt b/feature/mutual/src/main/java/com/rtbishop/look4sat/feature/mutual/MutualRadarView.kt index ba9c770a..8cb87243 100644 --- a/feature/mutual/src/main/java/com/rtbishop/look4sat/feature/mutual/MutualRadarView.kt +++ b/feature/mutual/src/main/java/com/rtbishop/look4sat/feature/mutual/MutualRadarView.kt @@ -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, 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) diff --git a/feature/mutual/src/main/java/com/rtbishop/look4sat/feature/mutual/MutualScreen.kt b/feature/mutual/src/main/java/com/rtbishop/look4sat/feature/mutual/MutualScreen.kt index 3c518c41..7830be3c 100644 --- a/feature/mutual/src/main/java/com/rtbishop/look4sat/feature/mutual/MutualScreen.kt +++ b/feature/mutual/src/main/java/com/rtbishop/look4sat/feature/mutual/MutualScreen.kt @@ -433,7 +433,6 @@ private fun MutualPassCard( MutualRadarView( trackSamples = pass.trackSamples, progress = dragProgress, - onProgressChange = { dragProgress = it }, labelA = "你", labelB = "友台" ) diff --git a/feature/radar/src/main/java/com/rtbishop/look4sat/feature/radar/RadarScreen.kt b/feature/radar/src/main/java/com/rtbishop/look4sat/feature/radar/RadarScreen.kt index ca49af7d..cb0bf303 100644 --- a/feature/radar/src/main/java/com/rtbishop/look4sat/feature/radar/RadarScreen.kt +++ b/feature/radar/src/main/java/com/rtbishop/look4sat/feature/radar/RadarScreen.kt @@ -118,16 +118,18 @@ 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 { - OrbitalPos( - azimuth = it.azimuthB * PI / 180.0, - elevation = it.elevationB * PI / 180.0, - time = it.time - ) - } + mutualData.trackSamples + .filter { it.elevationB > 0.0 } + .map { + OrbitalPos( + azimuth = it.azimuthB * PI / 180.0, + elevation = it.elevationB * PI / 180.0, + time = it.time + ) + } } val timeNow = System.currentTimeMillis() val trackBPosition = mutualData.trackSamples @@ -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) {