diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingLinkPreviewMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingLinkPreviewMessageViewHolder.kt index 2da908446..c1855ac53 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingLinkPreviewMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingLinkPreviewMessageViewHolder.kt @@ -122,6 +122,7 @@ class IncomingLinkPreviewMessageViewHolder(incomingView: View, payload: Any) : M private fun setAvatarAndAuthorOnMessageItem(message: ChatMessage) { val author: String = message.actorDisplayName!! if (!TextUtils.isEmpty(author)) { + binding.messageAuthor.visibility = View.VISIBLE binding.messageAuthor.text = author binding.messageUserAvatar.setOnClickListener { (payload as? MessagePayload)?.profileBottomSheet?.showFor(message.actorId!!, itemView.context) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingLocationMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingLocationMessageViewHolder.kt index 0163cc91b..548a927c6 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingLocationMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingLocationMessageViewHolder.kt @@ -126,6 +126,7 @@ class IncomingLocationMessageViewHolder(incomingView: View, payload: Any) : Mess private fun setAvatarAndAuthorOnMessageItem(message: ChatMessage) { val author: String = message.actorDisplayName!! if (!TextUtils.isEmpty(author)) { + binding.messageAuthor.visibility = View.VISIBLE binding.messageAuthor.text = author binding.messageUserAvatar.setOnClickListener { (payload as? MessagePayload)?.profileBottomSheet?.showFor(message.actorId!!, itemView.context) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingPollMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingPollMessageViewHolder.kt index 732e75663..249107ffe 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingPollMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingPollMessageViewHolder.kt @@ -146,6 +146,7 @@ class IncomingPollMessageViewHolder(incomingView: View, payload: Any) : MessageH private fun setAvatarAndAuthorOnMessageItem(message: ChatMessage) { val author: String = message.actorDisplayName!! if (!TextUtils.isEmpty(author)) { + binding.messageAuthor.visibility = View.VISIBLE binding.messageAuthor.text = author binding.messageUserAvatar.setOnClickListener { (payload as? MessagePayload)?.profileBottomSheet?.showFor(message.actorId!!, itemView.context) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingPreviewMessageViewHolder.java b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingPreviewMessageViewHolder.java index b618d9518..2b896d74d 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingPreviewMessageViewHolder.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingPreviewMessageViewHolder.java @@ -3,6 +3,8 @@ * * @author Andy Scherzinger * @author Tim Krüger + * @author Marcel Hibbe + * Copyright (C) 2022-2023 Marcel Hibbe * Copyright (C) 2021-2022 Tim Krüger * Copyright (C) 2021 Andy Scherzinger * diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingTextMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingTextMessageViewHolder.kt index 43edceb5d..2d2aeb14c 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingTextMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingTextMessageViewHolder.kt @@ -4,6 +4,8 @@ * @author Mario Danic * @author Andy Scherzinger * @author Tim Krüger + * @author Marcel Hibbe + * Copyright (C) 2022-2023 Marcel Hibbe * Copyright (C) 2021 Tim Krüger * Copyright (C) 2021 Andy Scherzinger * Copyright (C) 2017-2018 Mario Danic @@ -75,20 +77,10 @@ class IncomingTextMessageViewHolder(itemView: View, payload: Any) : MessageHolde override fun onBind(message: ChatMessage) { super.onBind(message) sharedApplication!!.componentApplication.inject(this) - processAuthor(message) - if (!message.isGrouped && !message.isOneToOneConversation) { - showAvatarOnChatMessage(message) - } else { - if (message.isOneToOneConversation) { - binding.messageUserAvatar.visibility = View.GONE - } else { - binding.messageUserAvatar.visibility = View.INVISIBLE - } - binding.messageAuthor.visibility = View.GONE - } + setAvatarAndAuthorOnMessageItem(message) - viewThemeUtils.talk.themeIncomingMessageBubble(bubble, message.isGrouped, message.isDeleted) + colorizeMessageBubble(message) itemView.isSelected = false @@ -139,15 +131,43 @@ class IncomingTextMessageViewHolder(itemView: View, payload: Any) : MessageHolde commonMessageInterface.onClickReaction(chatMessage, emoji) } - private fun processAuthor(message: ChatMessage) { - if (!TextUtils.isEmpty(message.actorDisplayName)) { - binding.messageAuthor.text = message.actorDisplayName + private fun setAvatarAndAuthorOnMessageItem(message: ChatMessage) { + val author: String = message.actorDisplayName!! + if (!TextUtils.isEmpty(author)) { + binding.messageAuthor.visibility = View.VISIBLE + binding.messageAuthor.text = author binding.messageUserAvatar.setOnClickListener { (payload as? MessagePayload)?.profileBottomSheet?.showFor(message.actorId!!, itemView.context) } } else { binding.messageAuthor.setText(R.string.nc_nick_guest) } + + if (!message.isGrouped && !message.isOneToOneConversation) { + setAvatarOnMessage(message) + } else { + if (message.isOneToOneConversation) { + binding.messageUserAvatar.visibility = View.GONE + } else { + binding.messageUserAvatar.visibility = View.INVISIBLE + } + binding.messageAuthor.visibility = View.GONE + } + } + + private fun setAvatarOnMessage(message: ChatMessage) { + binding.messageUserAvatar.visibility = View.VISIBLE + if (message.actorType == "guests") { + // do nothing, avatar is set + } else if (message.actorType == "bots" && message.actorId == "changelog") { + binding.messageUserAvatar.loadChangelogBotAvatar() + } else if (message.actorType == "bots") { + binding.messageUserAvatar.loadBotsAvatar() + } + } + + private fun colorizeMessageBubble(message: ChatMessage) { + viewThemeUtils.talk.themeIncomingMessageBubble(bubble, message.isGrouped, message.isDeleted) } private fun processParentMessage(message: ChatMessage) { diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingVoiceMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingVoiceMessageViewHolder.kt index 8b281a7ca..c5fdf4ca9 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingVoiceMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingVoiceMessageViewHolder.kt @@ -223,6 +223,7 @@ class IncomingVoiceMessageViewHolder(incomingView: View, payload: Any) : Message private fun setAvatarAndAuthorOnMessageItem(message: ChatMessage) { val author: String = message.actorDisplayName!! if (!TextUtils.isEmpty(author)) { + binding.messageAuthor.visibility = View.VISIBLE binding.messageAuthor.text = author binding.messageUserAvatar.setOnClickListener { (payload as? MessagePayload)?.profileBottomSheet?.showFor(message.actorId!!, itemView.context) diff --git a/app/src/main/res/layout/item_custom_incoming_location_message.xml b/app/src/main/res/layout/item_custom_incoming_location_message.xml index 624d60cee..f8ade844c 100644 --- a/app/src/main/res/layout/item_custom_incoming_location_message.xml +++ b/app/src/main/res/layout/item_custom_incoming_location_message.xml @@ -56,11 +56,6 @@ layout="@layout/item_message_quote" android:visibility="gone" /> - - + +