fix(mutual/radar): bigger radar shortcut; no bounce-back on finished pass

- Pass card header: radar icon button enlarged to 48dp touch target with a
  24dp icon, spanning both header rows vertically (name/time + elevations);
  the pass info column narrows so the Opposite elevation shifts left.
- RadarDestination no longer auto-returns instantly when the mutual pass has
  already ended — the auto-return now only runs while the pass is actually in
  progress. Previously the collapsed-card radar shortcut appeared broken
  ('flash back to Mutual') whenever the computed pass had finished.
- Fakes: add the 4 last-sync bookkeeping members missed by the LoTW commit.
This commit is contained in:
atsunatsu committed 2026-09-16 16:53:46 +08:00
1 parent f3fdf61784
commit 0ce177cfbf
3 files changed
+64 -44

No files matched your search

@@ -101,14 +101,17 @@ fun RadarDestination(navigateUp: () -> Unit) {
}
LaunchedEffect(mutualData.endTime) {
if (mutualData.endTime <= 0L) return@LaunchedEffect
while (true) {
val remainingMs = mutualData.endTime - System.currentTimeMillis()
if (remainingMs <= 0L) {
navigateUpAndClearMutual()
return@LaunchedEffect
}
// Auto-return only while the mutual pass is actually in progress. An
// already-finished pass must NOT bounce the radar page back instantly
// (that made the pass-card radar shortcut look broken: tapping it while
// the computed pass had ended returned to Mutual immediately).
var remainingMs = mutualData.endTime - System.currentTimeMillis()
if (remainingMs <= 0L) return@LaunchedEffect
while (remainingMs > 0L) {
delay(remainingMs.coerceAtMost(1000L))
remainingMs = mutualData.endTime - System.currentTimeMillis()
}
navigateUpAndClearMutual()
}
// Sync actual permission state on every recomposition so it survives screen re-entry
val hasPermission = ContextCompat.checkSelfPermission(