diff --git a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatDetailScreen.kt b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatDetailScreen.kt index c3bcacd..874c91c 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatDetailScreen.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatDetailScreen.kt @@ -288,15 +288,9 @@ fun ChatDetailScreen( var selectedMessages by remember { mutableStateOf>(emptySet()) } val isSelectionMode = selectedMessages.isNotEmpty() - // 🔥 Быстрое закрытие - СНАЧАЛА скрываем клавиатуру, ПОТОМ выходим + // 🔥 Простое закрытие val hideKeyboardAndBack: () -> Unit = { - // 1. Убираем фокус (это важно сделать первым!) - focusManager.clearFocus(force = true) - - // 2. Мгновенное синхронное скрытие клавиатуры через InputMethodManager - keyboard.hideNow() - - // 3. Теперь выходим - клавиатура уже скрыта + keyboard.hide() onBack() } @@ -377,13 +371,9 @@ fun ChatDetailScreen( // 🔥 Обработка системной кнопки назад BackHandler { hideKeyboardAndBack() } - // 🔥 Cleanup при выходе из экрана + // 🔥 Cleanup при выходе из экрана - только закрываем диалог DisposableEffect(Unit) { onDispose { - // Скрываем клавиатуру синхронно (backup если не скрыли раньше) - focusManager.clearFocus(force = true) - keyboard.hideNow() - // 🔥 Закрываем диалог - сообщения больше не будут читаться автоматически viewModel.closeDialog() } } @@ -2079,6 +2069,7 @@ private fun MessageInputBar( maxLines = 1 ) Spacer(modifier = Modifier.height(2.dp)) + // Превью ответа Text( text = if (replyMessages.size == 1) { val msg = replyMessages.first()