Skip to content

Commit c53262a

Browse files
style(reactions): ensure correct color coding of own reaction backgrounds
Resolves #4557 Signed-off-by: Andy Scherzinger <[email protected]>
1 parent 2b3ce94 commit c53262a

File tree

4 files changed

+24
-9
lines changed

4 files changed

+24
-9
lines changed

app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingTextMessageViewHolder.kt

+4-1
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,15 @@ class OutcomingTextMessageViewHolder(itemView: View) :
8888
itemView
8989
)
9090

91+
var isBubbled = true
9192
if (
9293
(message.messageParameters == null || message.messageParameters!!.size <= 0) &&
9394
TextMatchers.isMessageWithSingleEmoticonOnly(message.text)
9495
) {
9596
textSize = (textSize * TEXT_SIZE_MULTIPLIER).toFloat()
9697
layoutParams.isWrapBefore = true
9798
realView.isSelected = true
99+
isBubbled = false
98100
}
99101

100102
setBubbleOnChatMessage(message)
@@ -151,7 +153,8 @@ class OutcomingTextMessageViewHolder(itemView: View) :
151153
binding.reactions,
152154
context,
153155
true,
154-
viewThemeUtils
156+
viewThemeUtils,
157+
isBubbled
155158
)
156159
}
157160

app/src/main/java/com/nextcloud/talk/adapters/messages/PreviewMessageViewHolder.kt

+7-2
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,13 @@ import com.nextcloud.android.common.ui.theme.utils.ColorRole
2828
import com.nextcloud.talk.R
2929
import com.nextcloud.talk.application.NextcloudTalkApplication
3030
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
31+
import com.nextcloud.talk.chat.data.model.ChatMessage
3132
import com.nextcloud.talk.components.filebrowser.models.BrowserFile
3233
import com.nextcloud.talk.components.filebrowser.webdav.ReadFilesystemOperation
3334
import com.nextcloud.talk.data.user.model.User
3435
import com.nextcloud.talk.databinding.ReactionsInsideMessageBinding
3536
import com.nextcloud.talk.extensions.loadChangelogBotAvatar
3637
import com.nextcloud.talk.extensions.loadFederatedUserAvatar
37-
import com.nextcloud.talk.chat.data.model.ChatMessage
3838
import com.nextcloud.talk.ui.theme.ViewThemeUtils
3939
import com.nextcloud.talk.users.UserManager
4040
import com.nextcloud.talk.utils.DateUtils
@@ -158,7 +158,8 @@ abstract class PreviewMessageViewHolder(itemView: View?, payload: Any?) :
158158
reactionsBinding!!,
159159
messageText.context,
160160
true,
161-
viewThemeUtils!!
161+
viewThemeUtils!!,
162+
hasBubbleBackground(message)
162163
)
163164
reactionsBinding!!.reactionsEmojiWrapper.setPadding(paddingSide,0,paddingSide,0)
164165

@@ -315,6 +316,10 @@ abstract class PreviewMessageViewHolder(itemView: View?, payload: Any?) :
315316
this.previewMessageInterface = previewMessageInterface
316317
}
317318

319+
fun hasBubbleBackground(message: ChatMessage): Boolean {
320+
return !message.isVoiceMessage && message.message != "{file}";
321+
}
322+
318323
abstract val messageText: EmojiTextView
319324
abstract val messageCaption: EmojiTextView
320325
abstract val previewContainer: View

app/src/main/java/com/nextcloud/talk/adapters/messages/Reaction.kt

+11-4
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ class Reaction {
2626
binding: ReactionsInsideMessageBinding,
2727
context: Context,
2828
isOutgoingMessage: Boolean,
29-
viewThemeUtils: ViewThemeUtils
29+
viewThemeUtils: ViewThemeUtils,
30+
isBubbled: Boolean = true
3031
) {
3132
binding.reactionsEmojiWrapper.removeAllViews()
3233

@@ -64,7 +65,8 @@ class Reaction {
6465
viewThemeUtils,
6566
isOutgoingMessage,
6667
isSelfReaction
67-
)
68+
),
69+
isBubbled
6870
)
6971

7072
emojiWithAmountWrapper.setOnClickListener {
@@ -86,7 +88,8 @@ class Reaction {
8688
context: Context,
8789
emoji: String,
8890
amount: Int,
89-
layoutInfo: EmojiWithAmountWrapperLayoutInfo
91+
layoutInfo: EmojiWithAmountWrapperLayoutInfo,
92+
isBubbled: Boolean
9093
): LinearLayout {
9194
val emojiWithAmountWrapper = LinearLayout(context)
9295
emojiWithAmountWrapper.orientation = LinearLayout.HORIZONTAL
@@ -96,7 +99,11 @@ class Reaction {
9699
emojiWithAmountWrapper.layoutParams = layoutInfo.wrapperParams
97100

98101
if (layoutInfo.isSelfReaction) {
99-
layoutInfo.viewThemeUtils.talk.setCheckedBackground(emojiWithAmountWrapper, layoutInfo.isOutgoingMessage)
102+
layoutInfo.viewThemeUtils.talk.setCheckedBackground(
103+
emojiWithAmountWrapper,
104+
layoutInfo.isOutgoingMessage,
105+
isBubbled
106+
)
100107

101108
emojiWithAmountWrapper.setPaddingRelative(
102109
layoutInfo.paddingSide,

app/src/main/java/com/nextcloud/talk/ui/theme/TalkSpecificViewThemeUtils.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -168,12 +168,12 @@ class TalkSpecificViewThemeUtils @Inject constructor(
168168
}
169169
}
170170

171-
fun setCheckedBackground(linearLayout: LinearLayout, outgoing: Boolean) {
171+
fun setCheckedBackground(linearLayout: LinearLayout, outgoing: Boolean, isBubbled: Boolean) {
172172
withScheme(linearLayout) { scheme ->
173173
val drawable = AppCompatResources
174174
.getDrawable(linearLayout.context, R.drawable.reaction_self_background)!!
175175
.mutate()
176-
val backgroundColor = if (outgoing) {
176+
val backgroundColor = if (outgoing && isBubbled) {
177177
ContextCompat.getColor(
178178
linearLayout.context,
179179
R.color.bg_message_list_incoming_bubble

0 commit comments

Comments
 (0)