From 917a2a2b28e26510de2c95e31a660278c7cf899c Mon Sep 17 00:00:00 2001 From: evgeny Date: Wed, 28 Oct 2026 10:57:22 +0100 Subject: [PATCH] Serialize stream capture preferences with other saved media profiles --- .../src/main/java/com/utun/chat/data/ConfigProvider.kt | 8 ++++---- .../src/main/java/com/utun/chat/data/StreamController.kt | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) 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 583e2a71d..6d81748a6 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 @@ -279,14 +279,14 @@ class ConfigProvider(private val context: Context) { LogManager.addLog("INFO", "STREAM", "Broadcast settings saved n=$subblocks r=$redundant; apply on next start") } - suspend fun getStreamCaptureSettings(): StreamCaptureSettings { + suspend fun getStreamCaptureSettings(): StreamCaptureSettings = configFiles.submit("load stream capture") { val prefs = context.dataStore.data.first() - return StreamCaptureSettings(prefs[streamCamera] ?: "", prefs[streamWidth] ?: 1280, prefs[streamHeight] ?: 720, + StreamCaptureSettings(prefs[streamCamera] ?: "", prefs[streamWidth] ?: 1280, prefs[streamHeight] ?: 720, prefs[streamFps] ?: 30, prefs[streamCodec] ?: StreamVideoCodec.H264.id, prefs[streamRotation] ?: StreamOrientation.AUTO.degrees, prefs[streamBitrate], prefs[streamAudio] ?: true) - } + }.await() - suspend fun saveStreamCaptureSettings(config: StreamCaptureConfig?, audio: Boolean?) { + fun saveStreamCaptureSettings(config: StreamCaptureConfig?, audio: Boolean?): Deferred = configFiles.submit("save stream capture") { context.dataStore.edit { prefs -> config?.let { prefs[streamCamera] = it.mode.camera diff --git a/tools/chatgui-android/app/src/main/java/com/utun/chat/data/StreamController.kt b/tools/chatgui-android/app/src/main/java/com/utun/chat/data/StreamController.kt index b716957e6..baa18d46d 100644 --- a/tools/chatgui-android/app/src/main/java/com/utun/chat/data/StreamController.kt +++ b/tools/chatgui-android/app/src/main/java/com/utun/chat/data/StreamController.kt @@ -45,7 +45,7 @@ object StreamController { /** Запись переживает закрытие экрана; DataStore сохраняет выбор одним изменением. */ fun rememberSettings(config: StreamCaptureConfig? = null, audio: Boolean? = null) { settingsScope.launch { - try { ChatApplication.instance.configProvider.saveStreamCaptureSettings(config, audio) } + try { ChatApplication.instance.configProvider.saveStreamCaptureSettings(config, audio).await() } catch (e: CancellationException) { throw e } catch (e: Exception) { LogManager.addLog("ERROR", "stream", "capture settings save failed: $e") } }