feat: Remove online indicator from ChatDetailScreen for cleaner UI
This commit is contained in:
@@ -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()) }
|
||||
|
||||
Reference in New Issue
Block a user