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 bacdac0..9e958b9 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 @@ -1127,8 +1127,12 @@ fun ChatDetailScreen( showDeleteConfirm = false scope.launch { try { - // Удаляем все сообщения из диалога - // DELETE FROM messages WHERE ((from_public_key = ? AND to_public_key = ?) OR (from_public_key = ? AND to_public_key = ?)) AND account = ? + // Удаляем все сообщения из диалога по dialog_key + database.messageDao().deleteDialog( + account = currentUserPublicKey, + dialogKey = user.publicKey + ) + // Также пробуем удалить по from/to ключам (на всякий случай) database.messageDao().deleteMessagesBetweenUsers( account = currentUserPublicKey, user1 = user.publicKey, @@ -1143,8 +1147,9 @@ fun ChatDetailScreen( } catch (e: Exception) { android.util.Log.e("ChatDetail", "❌ Error deleting chat", e) } + // Выходим ПОСЛЕ удаления + onBack() } - onBack() } ) { Text("Delete", color = Color(0xFFFF3B30)) diff --git a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatViewModel.kt b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatViewModel.kt index 616ba65..8c74fdb 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatViewModel.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatViewModel.kt @@ -273,10 +273,11 @@ class ChatViewModel(application: Application) : AndroidViewModel(application) { * Открыть диалог */ fun openDialog(publicKey: String, title: String = "", username: String = "") { - if (opponentKey == publicKey) { - ProtocolManager.addLog("💬 Dialog already open: ${publicKey.take(16)}...") - return - } + // 🔥 ВСЕГДА перезагружаем данные - не кешируем, т.к. диалог мог быть удалён + // if (opponentKey == publicKey) { + // ProtocolManager.addLog("💬 Dialog already open: ${publicKey.take(16)}...") + // return + // } // Отменяем предыдущую загрузку loadingJob?.cancel()