diff --git a/tools/chatgui-android/app/src/main/java/com/utun/chat/data/ConfigProvider.kt b/tools/chatgui-android/app/src/main/java/com/utun/chat/data/ConfigProvider.kt index ff1cb8099..b49f62238 100644 --- a/tools/chatgui-android/app/src/main/java/com/utun/chat/data/ConfigProvider.kt +++ b/tools/chatgui-android/app/src/main/java/com/utun/chat/data/ConfigProvider.kt @@ -40,8 +40,8 @@ data class RadioCompressorSettings(val enabled: Boolean = true, val maxGainDb: I * Поставщик Application: getString/getInt остаются синхронным API для JNI. * Файловые операции возвращают Deferred общей очереди; await не блокирует UI и не передаёт ожидающему владение запросом. * При формировании конфига настройки и keys.conf читаются один раз; чтение/запись utun.cfg сериализованы. - * UI принимает изменения через changes: сначала DataStore commit, затем runtime. Flow snapshots сохраняют - * последнее подтверждённое значение при ошибке чтения; Bluetooth-флаги меняются атомарно по отдельному биту. + * UI принимает изменения через changes: сначала DataStore commit, затем runtime. Наблюдение через changes + * сохраняет подтверждённый снимок UI при ошибке чтения; Bluetooth-флаги меняются атомарно по отдельному биту. */ class ConfigProvider(private val context: Context) { val changes = SettingsOperations() diff --git a/tools/chatgui-android/app/src/main/java/com/utun/chat/viewmodel/ChatViewModel.kt b/tools/chatgui-android/app/src/main/java/com/utun/chat/viewmodel/ChatViewModel.kt index 335f362fa..4a2382d81 100644 --- a/tools/chatgui-android/app/src/main/java/com/utun/chat/viewmodel/ChatViewModel.kt +++ b/tools/chatgui-android/app/src/main/java/com/utun/chat/viewmodel/ChatViewModel.kt @@ -1521,7 +1521,7 @@ class ChatViewModel : ViewModel() { val r = repo ?: return val generation = membersRepository.generation viewModelScope.launch { - val links = withContext(Dispatchers.IO) { r.getMemberLinks(nodeId) } + val links = withContext(Dispatchers.IO) { r.getMemberLinks(nodeId) } ?: return@launch if (_selectedMember.value?.nodeId == nodeId && generation == membersRepository.generation) _memberLinks.value = links } }