diff --git a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatsListScreen.kt b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatsListScreen.kt index 5350fb9..baa9802 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatsListScreen.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatsListScreen.kt @@ -1646,64 +1646,62 @@ fun DialogItemContent( verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.End ) { - // Показываем статус только для исходящих сообщений - if (dialog.lastMessageFromMe == 1) { - // 📁 Для Saved Messages всегда синие двойные галочки (прочитано) - if (dialog.isSavedMessages) { - Icon( - imageVector = Icons.Default.DoneAll, - contentDescription = null, - tint = PrimaryBlue, - modifier = Modifier.size(16.dp) - ) - Spacer(modifier = Modifier.width(4.dp)) - } else { - // 🔥 ЛОГИКА КАК В ДЕСКТОПЕ: - // Если delivered == DELIVERED: - // - unreadCount > 0 → одна галочка (есть непрочитанные входящие, собеседник не ответил) - // - unreadCount == 0 → две галочки (нет непрочитанных, собеседник видел/ответил) - when { - dialog.lastMessageDelivered == 2 -> { - // ERROR - показываем иконку ошибки - Icon( - imageVector = Icons.Outlined.ErrorOutline, - contentDescription = "Sending failed", - tint = Color(0xFFFF3B30), // iOS красный - modifier = Modifier.size(16.dp) - ) - Spacer(modifier = Modifier.width(4.dp)) - } - dialog.lastMessageDelivered == 1 -> { - // DELIVERED - смотрим на unreadCount - if (dialog.unreadCount > 0) { - // Есть непрочитанные входящие → одна серая галочка - Icon( - imageVector = Icons.Default.Done, - contentDescription = null, - tint = secondaryTextColor.copy(alpha = 0.6f), - modifier = Modifier.size(16.dp) - ) - } else { - // Нет непрочитанных → две синие галочки (прочитано) - Icon( - imageVector = Icons.Default.DoneAll, - contentDescription = null, - tint = PrimaryBlue, - modifier = Modifier.size(16.dp) - ) - } - Spacer(modifier = Modifier.width(4.dp)) - } - else -> { - // SENT/WAITING - одна серая галочка + // 📁 Для Saved Messages ВСЕГДА показываем синие двойные галочки (прочитано) + if (dialog.isSavedMessages) { + Icon( + imageVector = Icons.Default.DoneAll, + contentDescription = null, + tint = PrimaryBlue, + modifier = Modifier.size(16.dp) + ) + Spacer(modifier = Modifier.width(4.dp)) + } else if (dialog.lastMessageFromMe == 1) { + // Показываем статус только для исходящих сообщений (кроме Saved Messages) + // 🔥 ЛОГИКА КАК В ДЕСКТОПЕ: + // Если delivered == DELIVERED: + // - unreadCount > 0 → одна галочка (есть непрочитанные входящие, собеседник не ответил) + // - unreadCount == 0 → две галочки (нет непрочитанных, собеседник видел/ответил) + when { + dialog.lastMessageDelivered == 2 -> { + // ERROR - показываем иконку ошибки + Icon( + imageVector = Icons.Outlined.ErrorOutline, + contentDescription = "Sending failed", + tint = Color(0xFFFF3B30), // iOS красный + modifier = Modifier.size(16.dp) + ) + Spacer(modifier = Modifier.width(4.dp)) + } + dialog.lastMessageDelivered == 1 -> { + // DELIVERED - смотрим на unreadCount + if (dialog.unreadCount > 0) { + // Есть непрочитанные входящие → одна серая галочка Icon( imageVector = Icons.Default.Done, contentDescription = null, tint = secondaryTextColor.copy(alpha = 0.6f), modifier = Modifier.size(16.dp) ) - Spacer(modifier = Modifier.width(4.dp)) + } else { + // Нет непрочитанных → две синие галочки (прочитано) + Icon( + imageVector = Icons.Default.DoneAll, + contentDescription = null, + tint = PrimaryBlue, + modifier = Modifier.size(16.dp) + ) } + Spacer(modifier = Modifier.width(4.dp)) + } + else -> { + // SENT/WAITING - одна серая галочка + Icon( + imageVector = Icons.Default.Done, + contentDescription = null, + tint = secondaryTextColor.copy(alpha = 0.6f), + modifier = Modifier.size(16.dp) + ) + Spacer(modifier = Modifier.width(4.dp)) } } }