Preserve member connection state when its refresh fails
This commit is contained in:
1 parent
05ea602a3a
commit
ef6a5673bd
2 files changed
+3
-3
No files matched your search
@@ -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()
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user