feat: Remove online indicator from ChatDetailScreen for cleaner UI

This commit is contained in:
k1ngsterr1
2026-01-13 02:52:56 +05:00
parent b26c25629a
commit be0a1821b3

View File

@@ -513,16 +513,6 @@ fun ChatDetailScreen(
color = avatarColors.textColor
)
}
// 🟢 Online indicator
if (!isSavedMessages && isOnline) {
Box(
modifier = Modifier
.size(12.dp)
.align(Alignment.BottomEnd)
.background(Color(0xFF38B24D), CircleShape)
.border(2.dp, headerBackground, CircleShape)
)
}
}
Spacer(modifier = Modifier.width(12.dp))
@@ -776,6 +766,12 @@ fun ChatDetailScreen(
itemsIndexed(messagesWithDates, key = { _, item -> item.first.id }) {
index,
(message, showDate) ->
// Определяем, показывать ли хвостик (последнее сообщение в группе)
val nextMessage = messagesWithDates.getOrNull(index + 1)?.first
val showTail = nextMessage == null ||
nextMessage.isOutgoing != message.isOutgoing ||
(message.timestamp.time - nextMessage.timestamp.time) > 60_000 // 1 минута
Column {
// В reversed layout: дата показывается ПОСЛЕ сообщения
// (визуально СВЕРХУ группы сообщений)
@@ -788,7 +784,7 @@ fun ChatDetailScreen(
MessageBubble(
message = message,
isDarkTheme = isDarkTheme,
index = index,
showTail = showTail,
isSelected = selectedMessages.contains(message.id),
onLongClick = {
// Toggle selection on long press
@@ -1297,7 +1293,7 @@ fun rememberMessageEnterAnimation(messageId: String): Pair<Float, Float> {
private fun MessageBubble(
message: ChatMessage,
isDarkTheme: Boolean,
index: Int = 0,
showTail: Boolean = true,
isSelected: Boolean = false,
onLongClick: () -> Unit = {},
onClick: () -> Unit = {}
@@ -1335,13 +1331,13 @@ private fun MessageBubble(
if (isDarkTheme) Color(0xFF8E8E93) else Color(0xFF666666)
}
// Telegram bubble shape - простая форма с разными радиусами углов
// Telegram bubble shape - хвостик только у последнего сообщения в группе
val bubbleShape =
RoundedCornerShape(
topStart = 18.dp,
topEnd = 18.dp,
bottomStart = if (message.isOutgoing) 18.dp else 4.dp,
bottomEnd = if (message.isOutgoing) 4.dp else 18.dp
bottomStart = if (message.isOutgoing) 18.dp else (if (showTail) 4.dp else 18.dp),
bottomEnd = if (message.isOutgoing) (if (showTail) 4.dp else 18.dp) else 18.dp
)
val timeFormat = remember { SimpleDateFormat("HH:mm", Locale.getDefault()) }