Compare commits

...
Author SHA1 Message Date
atsunatsu 375225f25b build: release version 4.4.8-ba7opf.11.10 (585) 2026-10-10 21:03:24 +08:00
atsunatsu 1a1ed0aaea Merge pull request #7 from Iu-yang1/feature/radar-window-toggle-upstream-pr
feat(radar): toggle radar size in small windows (+ missing layout.size import fix)
2026-10-10 20:52:41 +08:00
atsunatsu 0f34c40b11 fix(radar): add missing layout.size import for the radar size toggle
PR #7 calls Modifier.size(48.dp) in RadarScreen.kt but never imported androidx.compose.foundation.layout.size, so :feature:radar:compileDebugKotlin failed with 'Unresolved reference: size' (verified by running the build).
2026-10-10 20:51:38 +08:00
Iu_yang1 85c39790ae fix(radar): match current split-window sizing behavior 2026-10-10 20:30:29 +08:00
Iu_yang1 e443ffe85d feat(radar): toggle radar size in small windows 2026-10-10 20:26:10 +08:00
5 changed files with 54 additions and 4 deletions

No files matched your search

@@ -92,6 +92,10 @@
<!-- Radar screen -->
<string name="radar_back">后退</string>
<string name="radar_use_large">使用大雷达</string>
<string name="radar_use_small">使用小雷达</string>
<string name="radar_size_large_short">大</string>
<string name="radar_size_small_short">小</string>
<string name="radar_notify">通知</string>
<string name="radar_az_text">方位角</string>
<string name="radar_el_text">仰角</string>
@@ -82,6 +82,10 @@
<!-- Radar screen -->
<string name="radar_back">后退</string>
<string name="radar_use_large">使用大雷达</string>
<string name="radar_use_small">使用小雷达</string>
<string name="radar_size_large_short">大</string>
<string name="radar_size_small_short">小</string>
<string name="radar_notify">通知</string>
<string name="radar_az_text">方位角</string>
<string name="radar_el_text">仰角</string>
@@ -93,6 +93,10 @@
<!-- Radar screen -->
<string name="radar_back">Back</string>
<string name="radar_use_large">Use large radar</string>
<string name="radar_use_small">Use small radar</string>
<string name="radar_size_large_short">L</string>
<string name="radar_size_small_short">S</string>
<string name="radar_notify">Notify</string>
<string name="radar_az_text">Azimuth</string>
<string name="radar_az_value" translatable="false">%.1f°</string>
@@ -42,6 +42,7 @@ import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.navigationBars
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.pager.HorizontalPager
import androidx.compose.foundation.pager.rememberPagerState
import androidx.compose.material3.ElevatedCard
@@ -62,6 +63,8 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.keepScreenOn
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.semantics.contentDescription
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.Dp
@@ -284,6 +287,7 @@ private fun RadarScreen(
// row, the radar keeps the largest square it can, the pager yields (reserved block when
// the window is tall enough, overlaid tab strip + panel when it is not).
val fillRadar = useFillRadarLayout(isVertical, maxWidth, maxHeight)
var useLargeRadar by remember(fillRadar) { mutableStateOf(fillRadar) }
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.spacedBy(6.dp)
@@ -297,7 +301,15 @@ private fun RadarScreen(
TimerRow(timeString = uiState.currentTime, isTimeAos = uiState.isTimeAos)
IconCard(action = addToCalendar, resId = R.drawable.ic_calendar)
}
TopBar { NextPassRow(pass = upcomingPass, isUtc = uiState.isUtc) }
TopBar {
NextPassRow(pass = upcomingPass, isUtc = uiState.isUtc)
if (fillRadar) {
RadarSizeToggle(
showingLargeRadar = useLargeRadar,
onToggle = { useLargeRadar = !useLargeRadar }
)
}
}
} else {
TopBar {
IconCard(action = navigateUp, resId = R.drawable.ic_back)
@@ -307,7 +319,7 @@ private fun RadarScreen(
}
}
if (isVertical) {
if (fillRadar) {
if (fillRadar && useLargeRadar) {
RadarFillArea(
uiState = uiState,
trackB = trackB,
@@ -332,6 +344,32 @@ private fun RadarScreen(
}
}
@Composable
private fun RadarSizeToggle(showingLargeRadar: Boolean, onToggle: () -> Unit) {
val label = stringResource(
if (showingLargeRadar) R.string.radar_use_small else R.string.radar_use_large
)
ElevatedCard(
modifier = Modifier.size(48.dp),
onClick = onToggle
) {
Box(
modifier = Modifier
.fillMaxSize()
.semantics { contentDescription = label },
contentAlignment = Alignment.Center
) {
Text(
text = stringResource(
if (showingLargeRadar) R.string.radar_size_small_short
else R.string.radar_size_large_short
),
fontSize = 16.sp
)
}
}
}
/**
* Radar area for split-screen / small windows. The radar takes the largest square the area
* can hold so the circle spans the same share of the width it does full screen, and the
+2 -2
View File
@@ -1,8 +1,8 @@
[versions]
#noinspection UnusedVersionCatalogEntry
appVersionCode = "584"
appVersionCode = "585"
#noinspection UnusedVersionCatalogEntry
appVersionName = "4.4.8-ba7opf.11.9"
appVersionName = "4.4.8-ba7opf.11.10"
#noinspection UnusedVersionCatalogEntry
compileSdk = "37"
#noinspection UnusedVersionCatalogEntry