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") } }