Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ public fun SelectedMessageMenu(
currentUser = currentUser,
ownCapabilities = ownCapabilities,
showMessageFooter = false,
isPreviewMode = true,
)
val messageAlignment = ChatTheme.messageAlignmentProvider.provideMessageAlignment(messageItemState)
val bubbleAlignmentPadding = when (messageAlignment) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clipToBounds
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.hapticfeedback.HapticFeedbackType
import androidx.compose.ui.input.pointer.pointerInput
import androidx.compose.ui.input.pointer.positionChange
Expand Down Expand Up @@ -150,7 +151,7 @@
@Suppress("LongMethod")
@OptIn(ExperimentalFoundationApi::class)
@Composable
public fun MessageContainer(

Check failure on line 154 in stream-chat-android-compose/src/main/java/io/getstream/chat/android/compose/ui/messages/list/MessageContainer.kt

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Refactor this method to reduce its Cognitive Complexity from 18 to the 15 allowed.

See more on https://sonarcloud.io/project/issues?id=GetStream_stream-chat-android&issues=AZ0LNpZj63pryTICfJG9&open=AZ0LNpZj63pryTICfJG9&pullRequest=6278
messageItem: MessageItemState,
reactionSorting: ReactionSorting,
onLongItemClick: (Message) -> Unit,
Expand Down Expand Up @@ -188,9 +189,11 @@
},
)

val backgroundColor = when (focusState is MessageFocused || message.isPinned(ChatTheme.timeProvider)) {
true -> ChatTheme.colors.backgroundCoreHighlight
else -> ChatTheme.colors.backgroundCoreHighlight.copy(alpha = 0f)
val highlightColor = ChatTheme.colors.backgroundCoreHighlight
val backgroundColor = when {
messageItem.isPreviewMode -> highlightColor.copy(alpha = 0f)
focusState is MessageFocused || message.isPinned(ChatTheme.timeProvider) -> highlightColor
else -> highlightColor.copy(alpha = 0f)
}

val color by animateColorAsState(
Expand Down Expand Up @@ -357,14 +360,18 @@
}
}

@Composable
private fun MessageItemState.annotationContentColor(default: Color = ChatTheme.colors.textPrimary): Color =
if (isPreviewMode) ChatTheme.colors.textOnAccent else default

@Composable
private fun SavedForLaterAnnotation(item: MessageItemState) {
val reminder = item.message.reminder
if (reminder != null && reminder.remindAt == null) {
MessageAnnotation(
iconId = R.drawable.stream_compose_ic_annotation_bookmark,
text = stringResource(R.string.stream_compose_message_list_saved_for_later),
contentColor = ChatTheme.colors.accentPrimary,
contentColor = item.annotationContentColor(default = ChatTheme.colors.accentPrimary),
)
}
}
Expand All @@ -383,6 +390,7 @@
iconId = R.drawable.stream_compose_ic_annotation_pin,
text = pinnedByUser?.let { stringResource(R.string.stream_compose_pinned_to_channel_by, it) }
?: stringResource(R.string.stream_compose_pinned_to_channel),
contentColor = item.annotationContentColor(),
)
}
}
Expand All @@ -399,6 +407,7 @@
iconId = R.drawable.stream_compose_ic_annotation_arrow_up_right,
text = stringResource(alsoSendToChannelTextRes),
trailingText = stringResource(R.string.stream_compose_message_list_view),
contentColor = item.annotationContentColor(),
trailingTextColor = ChatTheme.colors.chatTextLink,
onClick = { onThreadClick(item.message) },
)
Expand All @@ -414,6 +423,7 @@
iconId = R.drawable.stream_compose_ic_annotation_reminder,
text = stringResource(R.string.stream_compose_message_list_remind_me),
trailingText = formatReminderDuration(remindAt.time, timeProvider()),
contentColor = item.annotationContentColor(),
)
}
}
Expand All @@ -434,6 +444,7 @@
MessageAnnotation(
iconId = R.drawable.stream_compose_ic_annotation_translated,
text = stringResource(R.string.stream_compose_message_list_auto_translated),
contentColor = item.annotationContentColor(),
trailingText = if (item.showOriginalText) {
stringResource(R.string.stream_compose_message_list_show_translation)
} else {
Expand All @@ -448,6 +459,7 @@
MessageAnnotation(
iconId = R.drawable.stream_compose_ic_annotation_translated,
text = stringResource(R.string.stream_compose_message_list_auto_translated),
contentColor = item.annotationContentColor(),
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2843,14 +2843,15 @@ public final class io/getstream/chat/android/ui/common/state/messages/list/Messa

public final class io/getstream/chat/android/ui/common/state/messages/list/MessageItemState : io/getstream/chat/android/ui/common/state/messages/list/HasMessageListItemState {
public static final field $stable I
public fun <init> (Lio/getstream/chat/android/models/Message;Ljava/lang/String;ZZZLio/getstream/chat/android/models/User;Lio/getstream/chat/android/ui/common/state/messages/list/MessagePosition;ZZLio/getstream/chat/android/ui/common/state/messages/list/DeletedMessageVisibility;Lio/getstream/chat/android/ui/common/state/messages/list/MessageFocusState;Ljava/util/List;ZLjava/util/Set;)V
public synthetic fun <init> (Lio/getstream/chat/android/models/Message;Ljava/lang/String;ZZZLio/getstream/chat/android/models/User;Lio/getstream/chat/android/ui/common/state/messages/list/MessagePosition;ZZLio/getstream/chat/android/ui/common/state/messages/list/DeletedMessageVisibility;Lio/getstream/chat/android/ui/common/state/messages/list/MessageFocusState;Ljava/util/List;ZLjava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun <init> (Lio/getstream/chat/android/models/Message;Ljava/lang/String;ZZZLio/getstream/chat/android/models/User;Lio/getstream/chat/android/ui/common/state/messages/list/MessagePosition;ZZLio/getstream/chat/android/ui/common/state/messages/list/DeletedMessageVisibility;Lio/getstream/chat/android/ui/common/state/messages/list/MessageFocusState;Ljava/util/List;ZLjava/util/Set;Z)V
public synthetic fun <init> (Lio/getstream/chat/android/models/Message;Ljava/lang/String;ZZZLio/getstream/chat/android/models/User;Lio/getstream/chat/android/ui/common/state/messages/list/MessagePosition;ZZLio/getstream/chat/android/ui/common/state/messages/list/DeletedMessageVisibility;Lio/getstream/chat/android/ui/common/state/messages/list/MessageFocusState;Ljava/util/List;ZLjava/util/Set;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1 ()Lio/getstream/chat/android/models/Message;
public final fun component10 ()Lio/getstream/chat/android/ui/common/state/messages/list/DeletedMessageVisibility;
public final fun component11 ()Lio/getstream/chat/android/ui/common/state/messages/list/MessageFocusState;
public final fun component12 ()Ljava/util/List;
public final fun component13 ()Z
public final fun component14 ()Ljava/util/Set;
public final fun component15 ()Z
public final fun component2 ()Ljava/lang/String;
public final fun component3 ()Z
public final fun component4 ()Z
Expand All @@ -2859,8 +2860,8 @@ public final class io/getstream/chat/android/ui/common/state/messages/list/Messa
public final fun component7 ()Lio/getstream/chat/android/ui/common/state/messages/list/MessagePosition;
public final fun component8 ()Z
public final fun component9 ()Z
public final fun copy (Lio/getstream/chat/android/models/Message;Ljava/lang/String;ZZZLio/getstream/chat/android/models/User;Lio/getstream/chat/android/ui/common/state/messages/list/MessagePosition;ZZLio/getstream/chat/android/ui/common/state/messages/list/DeletedMessageVisibility;Lio/getstream/chat/android/ui/common/state/messages/list/MessageFocusState;Ljava/util/List;ZLjava/util/Set;)Lio/getstream/chat/android/ui/common/state/messages/list/MessageItemState;
public static synthetic fun copy$default (Lio/getstream/chat/android/ui/common/state/messages/list/MessageItemState;Lio/getstream/chat/android/models/Message;Ljava/lang/String;ZZZLio/getstream/chat/android/models/User;Lio/getstream/chat/android/ui/common/state/messages/list/MessagePosition;ZZLio/getstream/chat/android/ui/common/state/messages/list/DeletedMessageVisibility;Lio/getstream/chat/android/ui/common/state/messages/list/MessageFocusState;Ljava/util/List;ZLjava/util/Set;ILjava/lang/Object;)Lio/getstream/chat/android/ui/common/state/messages/list/MessageItemState;
public final fun copy (Lio/getstream/chat/android/models/Message;Ljava/lang/String;ZZZLio/getstream/chat/android/models/User;Lio/getstream/chat/android/ui/common/state/messages/list/MessagePosition;ZZLio/getstream/chat/android/ui/common/state/messages/list/DeletedMessageVisibility;Lio/getstream/chat/android/ui/common/state/messages/list/MessageFocusState;Ljava/util/List;ZLjava/util/Set;Z)Lio/getstream/chat/android/ui/common/state/messages/list/MessageItemState;
public static synthetic fun copy$default (Lio/getstream/chat/android/ui/common/state/messages/list/MessageItemState;Lio/getstream/chat/android/models/Message;Ljava/lang/String;ZZZLio/getstream/chat/android/models/User;Lio/getstream/chat/android/ui/common/state/messages/list/MessagePosition;ZZLio/getstream/chat/android/ui/common/state/messages/list/DeletedMessageVisibility;Lio/getstream/chat/android/ui/common/state/messages/list/MessageFocusState;Ljava/util/List;ZLjava/util/Set;ZILjava/lang/Object;)Lio/getstream/chat/android/ui/common/state/messages/list/MessageItemState;
public fun equals (Ljava/lang/Object;)Z
public final fun getCurrentUser ()Lio/getstream/chat/android/models/User;
public final fun getDeletedMessageVisibility ()Lio/getstream/chat/android/ui/common/state/messages/list/DeletedMessageVisibility;
Expand All @@ -2877,6 +2878,7 @@ public final class io/getstream/chat/android/ui/common/state/messages/list/Messa
public final fun isMessageDelivered ()Z
public final fun isMessageRead ()Z
public final fun isMine ()Z
public final fun isPreviewMode ()Z
public fun toString ()Ljava/lang/String;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ public sealed class HasMessageListItemState : MessageListItemState() {
* @param showOriginalText If the original text of the message should be shown in the UI instead of its translation (if
* the message was auto-translated).
* @param ownCapabilities The capabilities of the current user in the channel.
* @param isPreviewMode Whether the message is displayed as a preview (e.g. inside the selected message menu).
*/
public data class MessageItemState(
public override val message: Message = Message(),
Expand All @@ -88,6 +89,7 @@ public data class MessageItemState(
public val messageReadBy: List<ChannelUserRead> = emptyList(),
public val showOriginalText: Boolean = false,
public val ownCapabilities: Set<String>,
public val isPreviewMode: Boolean = false,
) : HasMessageListItemState()

/**
Expand Down
Loading