mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-20 03:59:35 +01:00
pass roomToken to MessageViewHolders
wrap roomToken and ProfileBottomSheet in data class MessagePayload Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
parent
c7e9721809
commit
ae80a4e2ad
@ -50,7 +50,6 @@ import com.nextcloud.talk.application.NextcloudTalkApplication
|
|||||||
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
||||||
import com.nextcloud.talk.databinding.ItemCustomIncomingLocationMessageBinding
|
import com.nextcloud.talk.databinding.ItemCustomIncomingLocationMessageBinding
|
||||||
import com.nextcloud.talk.models.json.chat.ChatMessage
|
import com.nextcloud.talk.models.json.chat.ChatMessage
|
||||||
import com.nextcloud.talk.ui.bottom.sheet.ProfileBottomSheet
|
|
||||||
import com.nextcloud.talk.utils.ApiUtils
|
import com.nextcloud.talk.utils.ApiUtils
|
||||||
import com.nextcloud.talk.utils.DisplayUtils
|
import com.nextcloud.talk.utils.DisplayUtils
|
||||||
import com.nextcloud.talk.utils.UriUtils
|
import com.nextcloud.talk.utils.UriUtils
|
||||||
@ -117,7 +116,7 @@ class IncomingLocationMessageViewHolder(incomingView: View, payload: Any) : Mess
|
|||||||
if (!TextUtils.isEmpty(author)) {
|
if (!TextUtils.isEmpty(author)) {
|
||||||
binding.messageAuthor.text = author
|
binding.messageAuthor.text = author
|
||||||
binding.messageUserAvatar.setOnClickListener {
|
binding.messageUserAvatar.setOnClickListener {
|
||||||
(payload as? ProfileBottomSheet)?.showFor(message.actorId!!, itemView.context)
|
(payload as? MessagePayload)?.profileBottomSheet?.showFor(message.actorId!!, itemView.context)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
binding.messageAuthor.setText(R.string.nc_nick_guest)
|
binding.messageAuthor.setText(R.string.nc_nick_guest)
|
||||||
|
@ -41,7 +41,6 @@ import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedA
|
|||||||
import com.nextcloud.talk.databinding.ItemCustomIncomingPollMessageBinding
|
import com.nextcloud.talk.databinding.ItemCustomIncomingPollMessageBinding
|
||||||
import com.nextcloud.talk.models.json.chat.ChatMessage
|
import com.nextcloud.talk.models.json.chat.ChatMessage
|
||||||
import com.nextcloud.talk.polls.ui.PollMainDialogFragment
|
import com.nextcloud.talk.polls.ui.PollMainDialogFragment
|
||||||
import com.nextcloud.talk.ui.bottom.sheet.ProfileBottomSheet
|
|
||||||
import com.nextcloud.talk.utils.ApiUtils
|
import com.nextcloud.talk.utils.ApiUtils
|
||||||
import com.nextcloud.talk.utils.DisplayUtils
|
import com.nextcloud.talk.utils.DisplayUtils
|
||||||
import com.nextcloud.talk.utils.preferences.AppPreferences
|
import com.nextcloud.talk.utils.preferences.AppPreferences
|
||||||
@ -116,9 +115,7 @@ class IncomingPollMessageViewHolder(incomingView: View, payload: Any) : MessageH
|
|||||||
if (pollId != null && pollName != null) {
|
if (pollId != null && pollName != null) {
|
||||||
binding.messagePollTitle.text = pollName
|
binding.messagePollTitle.text = pollName
|
||||||
|
|
||||||
// TODO: how to get room token here?
|
val roomToken = (payload as? MessagePayload)!!.roomToken
|
||||||
// val roomToken = "???????????????????????????"
|
|
||||||
val roomToken = "i7ht5k9n"
|
|
||||||
|
|
||||||
binding.bubble.setOnClickListener {
|
binding.bubble.setOnClickListener {
|
||||||
val pollVoteDialog = PollMainDialogFragment.newInstance(
|
val pollVoteDialog = PollMainDialogFragment.newInstance(
|
||||||
@ -151,7 +148,7 @@ class IncomingPollMessageViewHolder(incomingView: View, payload: Any) : MessageH
|
|||||||
if (!TextUtils.isEmpty(author)) {
|
if (!TextUtils.isEmpty(author)) {
|
||||||
binding.messageAuthor.text = author
|
binding.messageAuthor.text = author
|
||||||
binding.messageUserAvatar.setOnClickListener {
|
binding.messageUserAvatar.setOnClickListener {
|
||||||
(payload as? ProfileBottomSheet)?.showFor(message.actorId!!, itemView.context)
|
(payload as? MessagePayload)?.profileBottomSheet?.showFor(message.actorId!!, itemView.context)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
binding.messageAuthor.setText(R.string.nc_nick_guest)
|
binding.messageAuthor.setText(R.string.nc_nick_guest)
|
||||||
|
@ -48,7 +48,6 @@ import com.nextcloud.talk.application.NextcloudTalkApplication
|
|||||||
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
||||||
import com.nextcloud.talk.databinding.ItemCustomIncomingVoiceMessageBinding
|
import com.nextcloud.talk.databinding.ItemCustomIncomingVoiceMessageBinding
|
||||||
import com.nextcloud.talk.models.json.chat.ChatMessage
|
import com.nextcloud.talk.models.json.chat.ChatMessage
|
||||||
import com.nextcloud.talk.ui.bottom.sheet.ProfileBottomSheet
|
|
||||||
import com.nextcloud.talk.utils.ApiUtils
|
import com.nextcloud.talk.utils.ApiUtils
|
||||||
import com.nextcloud.talk.utils.DisplayUtils
|
import com.nextcloud.talk.utils.DisplayUtils
|
||||||
import com.nextcloud.talk.utils.preferences.AppPreferences
|
import com.nextcloud.talk.utils.preferences.AppPreferences
|
||||||
@ -210,7 +209,7 @@ class IncomingVoiceMessageViewHolder(incomingView: View, payload: Any) : Message
|
|||||||
if (!TextUtils.isEmpty(author)) {
|
if (!TextUtils.isEmpty(author)) {
|
||||||
binding.messageAuthor.text = author
|
binding.messageAuthor.text = author
|
||||||
binding.messageUserAvatar.setOnClickListener {
|
binding.messageUserAvatar.setOnClickListener {
|
||||||
(payload as? ProfileBottomSheet)?.showFor(message.actorId!!, itemView.context)
|
(payload as? MessagePayload)?.profileBottomSheet?.showFor(message.actorId!!, itemView.context)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
binding.messageAuthor.setText(R.string.nc_nick_guest)
|
binding.messageAuthor.setText(R.string.nc_nick_guest)
|
||||||
|
@ -47,14 +47,12 @@ import com.nextcloud.talk.application.NextcloudTalkApplication
|
|||||||
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
|
||||||
import com.nextcloud.talk.databinding.ItemCustomIncomingTextMessageBinding
|
import com.nextcloud.talk.databinding.ItemCustomIncomingTextMessageBinding
|
||||||
import com.nextcloud.talk.models.json.chat.ChatMessage
|
import com.nextcloud.talk.models.json.chat.ChatMessage
|
||||||
import com.nextcloud.talk.ui.bottom.sheet.ProfileBottomSheet
|
|
||||||
import com.nextcloud.talk.ui.recyclerview.MessageSwipeCallback
|
import com.nextcloud.talk.ui.recyclerview.MessageSwipeCallback
|
||||||
import com.nextcloud.talk.utils.ApiUtils
|
import com.nextcloud.talk.utils.ApiUtils
|
||||||
import com.nextcloud.talk.utils.DisplayUtils
|
import com.nextcloud.talk.utils.DisplayUtils
|
||||||
import com.nextcloud.talk.utils.TextMatchers
|
import com.nextcloud.talk.utils.TextMatchers
|
||||||
import com.nextcloud.talk.utils.preferences.AppPreferences
|
import com.nextcloud.talk.utils.preferences.AppPreferences
|
||||||
import com.stfalcon.chatkit.messages.MessageHolders
|
import com.stfalcon.chatkit.messages.MessageHolders
|
||||||
import java.util.HashMap
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@AutoInjector(NextcloudTalkApplication::class)
|
@AutoInjector(NextcloudTalkApplication::class)
|
||||||
@ -136,7 +134,7 @@ class MagicIncomingTextMessageViewHolder(itemView: View, payload: Any) : Message
|
|||||||
if (!TextUtils.isEmpty(message.actorDisplayName)) {
|
if (!TextUtils.isEmpty(message.actorDisplayName)) {
|
||||||
binding.messageAuthor.text = message.actorDisplayName
|
binding.messageAuthor.text = message.actorDisplayName
|
||||||
binding.messageUserAvatar.setOnClickListener {
|
binding.messageUserAvatar.setOnClickListener {
|
||||||
(payload as? ProfileBottomSheet)?.showFor(message.actorId!!, itemView.context)
|
(payload as? MessagePayload)?.profileBottomSheet?.showFor(message.actorId!!, itemView.context)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
binding.messageAuthor.setText(R.string.nc_nick_guest)
|
binding.messageAuthor.setText(R.string.nc_nick_guest)
|
||||||
|
@ -49,7 +49,6 @@ import com.nextcloud.talk.components.filebrowser.webdav.ReadFilesystemOperation;
|
|||||||
import com.nextcloud.talk.data.user.model.User;
|
import com.nextcloud.talk.data.user.model.User;
|
||||||
import com.nextcloud.talk.databinding.ReactionsInsideMessageBinding;
|
import com.nextcloud.talk.databinding.ReactionsInsideMessageBinding;
|
||||||
import com.nextcloud.talk.models.json.chat.ChatMessage;
|
import com.nextcloud.talk.models.json.chat.ChatMessage;
|
||||||
import com.nextcloud.talk.ui.bottom.sheet.ProfileBottomSheet;
|
|
||||||
import com.nextcloud.talk.utils.DisplayUtils;
|
import com.nextcloud.talk.utils.DisplayUtils;
|
||||||
import com.nextcloud.talk.utils.DrawableUtils;
|
import com.nextcloud.talk.utils.DrawableUtils;
|
||||||
import com.nextcloud.talk.utils.FileViewerUtils;
|
import com.nextcloud.talk.utils.FileViewerUtils;
|
||||||
@ -125,8 +124,9 @@ public abstract class MagicPreviewMessageViewHolder extends MessageHolders.Incom
|
|||||||
} else {
|
} else {
|
||||||
userAvatar.setVisibility(View.VISIBLE);
|
userAvatar.setVisibility(View.VISIBLE);
|
||||||
userAvatar.setOnClickListener(v -> {
|
userAvatar.setOnClickListener(v -> {
|
||||||
if (payload instanceof ProfileBottomSheet) {
|
if (payload instanceof MessagePayload) {
|
||||||
((ProfileBottomSheet) payload).showFor(message.getActorId(), v.getContext());
|
((MessagePayload) payload).getProfileBottomSheet().showFor(message.getActorId(),
|
||||||
|
v.getContext());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -0,0 +1,8 @@
|
|||||||
|
package com.nextcloud.talk.adapters.messages
|
||||||
|
|
||||||
|
import com.nextcloud.talk.ui.bottom.sheet.ProfileBottomSheet
|
||||||
|
|
||||||
|
data class MessagePayload(
|
||||||
|
val roomToken: String,
|
||||||
|
val profileBottomSheet: ProfileBottomSheet
|
||||||
|
)
|
@ -111,6 +111,7 @@ import com.nextcloud.talk.adapters.messages.MagicIncomingTextMessageViewHolder
|
|||||||
import com.nextcloud.talk.adapters.messages.MagicOutcomingTextMessageViewHolder
|
import com.nextcloud.talk.adapters.messages.MagicOutcomingTextMessageViewHolder
|
||||||
import com.nextcloud.talk.adapters.messages.MagicSystemMessageViewHolder
|
import com.nextcloud.talk.adapters.messages.MagicSystemMessageViewHolder
|
||||||
import com.nextcloud.talk.adapters.messages.MagicUnreadNoticeMessageViewHolder
|
import com.nextcloud.talk.adapters.messages.MagicUnreadNoticeMessageViewHolder
|
||||||
|
import com.nextcloud.talk.adapters.messages.MessagePayload
|
||||||
import com.nextcloud.talk.adapters.messages.OutcomingLocationMessageViewHolder
|
import com.nextcloud.talk.adapters.messages.OutcomingLocationMessageViewHolder
|
||||||
import com.nextcloud.talk.adapters.messages.OutcomingPollMessageViewHolder
|
import com.nextcloud.talk.adapters.messages.OutcomingPollMessageViewHolder
|
||||||
import com.nextcloud.talk.adapters.messages.OutcomingPreviewMessageViewHolder
|
import com.nextcloud.talk.adapters.messages.OutcomingPreviewMessageViewHolder
|
||||||
@ -485,10 +486,12 @@ class ChatController(args: Bundle) :
|
|||||||
val messageHolders = MessageHolders()
|
val messageHolders = MessageHolders()
|
||||||
val profileBottomSheet = ProfileBottomSheet(ncApi!!, conversationUser!!, router)
|
val profileBottomSheet = ProfileBottomSheet(ncApi!!, conversationUser!!, router)
|
||||||
|
|
||||||
|
val payload = MessagePayload(roomToken!!, profileBottomSheet)
|
||||||
|
|
||||||
messageHolders.setIncomingTextConfig(
|
messageHolders.setIncomingTextConfig(
|
||||||
MagicIncomingTextMessageViewHolder::class.java,
|
MagicIncomingTextMessageViewHolder::class.java,
|
||||||
R.layout.item_custom_incoming_text_message,
|
R.layout.item_custom_incoming_text_message,
|
||||||
profileBottomSheet
|
payload
|
||||||
)
|
)
|
||||||
messageHolders.setOutcomingTextConfig(
|
messageHolders.setOutcomingTextConfig(
|
||||||
MagicOutcomingTextMessageViewHolder::class.java,
|
MagicOutcomingTextMessageViewHolder::class.java,
|
||||||
@ -498,7 +501,7 @@ class ChatController(args: Bundle) :
|
|||||||
messageHolders.setIncomingImageConfig(
|
messageHolders.setIncomingImageConfig(
|
||||||
IncomingPreviewMessageViewHolder::class.java,
|
IncomingPreviewMessageViewHolder::class.java,
|
||||||
R.layout.item_custom_incoming_preview_message,
|
R.layout.item_custom_incoming_preview_message,
|
||||||
profileBottomSheet
|
payload
|
||||||
)
|
)
|
||||||
|
|
||||||
messageHolders.setOutcomingImageConfig(
|
messageHolders.setOutcomingImageConfig(
|
||||||
@ -527,7 +530,7 @@ class ChatController(args: Bundle) :
|
|||||||
messageHolders.registerContentType(
|
messageHolders.registerContentType(
|
||||||
CONTENT_TYPE_LOCATION,
|
CONTENT_TYPE_LOCATION,
|
||||||
IncomingLocationMessageViewHolder::class.java,
|
IncomingLocationMessageViewHolder::class.java,
|
||||||
profileBottomSheet,
|
payload,
|
||||||
R.layout.item_custom_incoming_location_message,
|
R.layout.item_custom_incoming_location_message,
|
||||||
OutcomingLocationMessageViewHolder::class.java,
|
OutcomingLocationMessageViewHolder::class.java,
|
||||||
null,
|
null,
|
||||||
@ -538,7 +541,7 @@ class ChatController(args: Bundle) :
|
|||||||
messageHolders.registerContentType(
|
messageHolders.registerContentType(
|
||||||
CONTENT_TYPE_VOICE_MESSAGE,
|
CONTENT_TYPE_VOICE_MESSAGE,
|
||||||
IncomingVoiceMessageViewHolder::class.java,
|
IncomingVoiceMessageViewHolder::class.java,
|
||||||
profileBottomSheet,
|
payload,
|
||||||
R.layout.item_custom_incoming_voice_message,
|
R.layout.item_custom_incoming_voice_message,
|
||||||
OutcomingVoiceMessageViewHolder::class.java,
|
OutcomingVoiceMessageViewHolder::class.java,
|
||||||
null,
|
null,
|
||||||
@ -549,10 +552,10 @@ class ChatController(args: Bundle) :
|
|||||||
messageHolders.registerContentType(
|
messageHolders.registerContentType(
|
||||||
CONTENT_TYPE_POLL,
|
CONTENT_TYPE_POLL,
|
||||||
IncomingPollMessageViewHolder::class.java,
|
IncomingPollMessageViewHolder::class.java,
|
||||||
profileBottomSheet,
|
payload,
|
||||||
R.layout.item_custom_incoming_poll_message,
|
R.layout.item_custom_incoming_poll_message,
|
||||||
OutcomingPollMessageViewHolder::class.java,
|
OutcomingPollMessageViewHolder::class.java,
|
||||||
null,
|
payload,
|
||||||
R.layout.item_custom_outcoming_poll_message,
|
R.layout.item_custom_outcoming_poll_message,
|
||||||
this
|
this
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user