fix(settings): RadioControlDialog 组合期间写状态

问题:Compose 运行时警告两次 'State write during composition' (split mode 重置 + baud rate 调整)。
根因:splitMode/baudRate 的条件写操作在组合 body 内直接执行 (if 块)。
修复:用 LaunchedEffect 隔离副作用,避免组合期间修改状态。
影响:消除运行时警告,避免潜在的组合跳帧或死循环。
This commit is contained in:
mckero committed 2026-08-14 09:33:53 +00:00
1 parent 20e5b2f617
commit 82c8112575
1 file changed
+7 -2
@@ -36,6 +36,7 @@ import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.Switch
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
@@ -519,13 +520,17 @@ fun RadioControlDialog(
val isSingleRadio = isIcom && splitMode.value
// Reset split mode when switching away from IC-705
if (!isIcom && splitMode.value) splitMode.value = false
LaunchedEffect(isIcom) {
if (!isIcom && splitMode.value) splitMode.value = false
}
val baudRates = if (isIcom) RadioControlSettings.BAUD_RATES_ICOM
else RadioControlSettings.BAUD_RATES_YAESU
// If current baud rate is not in the new list, default to the first available
if (baudRate.intValue !in baudRates) baudRate.intValue = baudRates.first()
LaunchedEffect(baudRates) {
if (baudRate.intValue !in baudRates) baudRate.intValue = baudRates.first()
}
val pairedDevices: List<Pair<String, String>> = remember {
buildList {