From 082e0c5bffad7584c331d67c15430847ce1091a3 Mon Sep 17 00:00:00 2001 From: QIU Date: Fri, 14 Aug 2026 09:14:47 +0000 Subject: [PATCH] =?UTF-8?q?fix(radar):=20=E9=98=B2=E6=AD=A2=20WaveLog=20?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E6=8F=90=E4=BA=A4=20QSO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题:键盘 onDone 连击会存两条相同的 QSO(时间戳/呼号/频率完全一致)。 修复:添加 submitting 状态变量,提交期间拒绝重复调用。 影响:误操作不再造成重复记录。 --- .../main/java/com/rtbishop/look4sat/feature/radar/LogTab.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/feature/radar/src/main/java/com/rtbishop/look4sat/feature/radar/LogTab.kt b/feature/radar/src/main/java/com/rtbishop/look4sat/feature/radar/LogTab.kt index 70c7b270..36359ce1 100644 --- a/feature/radar/src/main/java/com/rtbishop/look4sat/feature/radar/LogTab.kt +++ b/feature/radar/src/main/java/com/rtbishop/look4sat/feature/radar/LogTab.kt @@ -253,12 +253,15 @@ private fun ExpandedLogInput( val scope = rememberCoroutineScope() var callsign by remember { mutableStateOf("") } var mode by remember { mutableStateOf(radio.uplinkMode ?: "FM") } + var submitting by remember { mutableStateOf(false) } val savedMsg = stringResource(id = R.string.wavelog_saved) fun submit() { + if (submitting) return val call = callsign.trim().uppercase() if (call.length < 3) return + submitting = true // Freq taken directly from the transponder bar (radio Doppler-corrected each second; value at the Enter moment) val tx = radio.uplinkLow ?: radio.downlinkLow ?: 0L val rx = radio.downlinkLow ?: radio.uplinkLow ?: 0L @@ -278,6 +281,7 @@ private fun ExpandedLogInput( callsign = "" onSaved() showToast(savedMsg) + submitting = false // QRZ counterpart grid async backfill (4.5.5): only queried when Cookie is set; silent on failure scope.launch { val prefs = context.getSharedPreferences("qrz_cookie", android.content.Context.MODE_PRIVATE)