Change bubble background colors - also affects background of reactions.
This commit is contained in:
committed by
Benoit Marty
parent
c7fa2b7620
commit
e7bb896001
@@ -112,7 +112,7 @@ internal fun aTimelineItemEvent(
|
||||
content = content,
|
||||
reactionsState = TimelineItemReactions(
|
||||
persistentListOf(
|
||||
AggregatedReaction("👍", "1")
|
||||
AggregatedReaction("👍", "1", isOnMyMessage = isMine)
|
||||
)
|
||||
),
|
||||
sentTime = "12:34",
|
||||
|
||||
@@ -35,23 +35,29 @@ import io.element.android.features.messages.impl.timeline.model.AggregatedReacti
|
||||
import io.element.android.features.messages.impl.timeline.model.AggregatedReactionProvider
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewDark
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewLight
|
||||
import io.element.android.libraries.designsystem.theme.ElementTheme
|
||||
import io.element.android.libraries.designsystem.theme.components.Surface
|
||||
import io.element.android.libraries.designsystem.theme.components.Text
|
||||
|
||||
@Composable
|
||||
fun MessagesReactionButton(reaction: AggregatedReaction, modifier: Modifier = Modifier) {
|
||||
val backgroundColor = if (reaction.isOnMyMessage) {
|
||||
ElementTheme.colors.messageFromMeBackground
|
||||
} else {
|
||||
ElementTheme.colors.messageFromOtherBackground
|
||||
}
|
||||
Surface(
|
||||
modifier = modifier,
|
||||
color = MaterialTheme.colorScheme.surfaceVariant,
|
||||
color = backgroundColor,
|
||||
border = BorderStroke(2.dp, MaterialTheme.colorScheme.background),
|
||||
shape = RoundedCornerShape(corner = CornerSize(12.dp)),
|
||||
shape = RoundedCornerShape(corner = CornerSize(14.dp)),
|
||||
) {
|
||||
Row(
|
||||
modifier = Modifier.padding(vertical = 5.dp, horizontal = 8.dp),
|
||||
modifier = Modifier.padding(vertical = 6.dp, horizontal = 12.dp),
|
||||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
// TODO `reaction.isHighlighted` is not used.
|
||||
Text(text = reaction.key, fontSize = 12.sp)
|
||||
Text(text = reaction.key, fontSize = 14.sp)
|
||||
Spacer(modifier = Modifier.width(4.dp))
|
||||
Text(text = reaction.count, color = MaterialTheme.colorScheme.secondary, fontSize = 12.sp)
|
||||
}
|
||||
|
||||
@@ -89,7 +89,12 @@ class TimelineItemEventFactory @Inject constructor(
|
||||
|
||||
private fun MatrixTimelineItem.Event.computeReactionsState(): TimelineItemReactions {
|
||||
val aggregatedReactions = event.reactions.map {
|
||||
AggregatedReaction(key = it.key, count = it.count.toString(), isHighlighted = false)
|
||||
AggregatedReaction(
|
||||
key = it.key,
|
||||
count = it.count.toString(),
|
||||
isHighlighted = false,
|
||||
isOnMyMessage = event.isOwn,
|
||||
)
|
||||
}
|
||||
return TimelineItemReactions(aggregatedReactions.toImmutableList())
|
||||
}
|
||||
|
||||
@@ -16,8 +16,9 @@
|
||||
|
||||
package io.element.android.features.messages.impl.timeline.model
|
||||
|
||||
data class AggregatedReaction(
|
||||
data class AggregatedReaction constructor(
|
||||
val key: String,
|
||||
val count: String,
|
||||
val isOnMyMessage: Boolean,
|
||||
val isHighlighted: Boolean = false
|
||||
)
|
||||
|
||||
@@ -20,16 +20,24 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
|
||||
open class AggregatedReactionProvider : PreviewParameterProvider<AggregatedReaction> {
|
||||
override val values: Sequence<AggregatedReaction>
|
||||
get() = sequenceOf(
|
||||
anAggregatedReaction(),
|
||||
anAggregatedReaction().copy(count = "88"),
|
||||
anAggregatedReaction().copy(isHighlighted = true),
|
||||
anAggregatedReaction().copy(count = "88", isHighlighted = true),
|
||||
)
|
||||
get() = sequenceOf(false, true).flatMap {
|
||||
sequenceOf(
|
||||
anAggregatedReaction(isOnMyMessage = it),
|
||||
anAggregatedReaction(isOnMyMessage = it, count = "88"),
|
||||
anAggregatedReaction(isOnMyMessage = it, isHighlighted = true),
|
||||
anAggregatedReaction(isOnMyMessage = it, count = "88", isHighlighted = true),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun anAggregatedReaction() = AggregatedReaction(
|
||||
key = "👍",
|
||||
count = "1", // TODO Why is it a String?
|
||||
isHighlighted = false,
|
||||
fun anAggregatedReaction(
|
||||
key: String = "👍",
|
||||
count: String = "1", // TODO Why is it a String?
|
||||
isOnMyMessage: Boolean = false,
|
||||
isHighlighted: Boolean = false,
|
||||
) = AggregatedReaction(
|
||||
key = key,
|
||||
count = count,
|
||||
isOnMyMessage = isOnMyMessage,
|
||||
isHighlighted = isHighlighted,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user