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 bf4b1b00c..a8b47572e 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 @@ -132,7 +132,7 @@ class IncomingLinkPreviewMessageViewHolder(incomingView: View, payload: Any) : binding.messageAuthor.visibility = View.VISIBLE binding.messageAuthor.text = author binding.messageUserAvatar.setOnClickListener { - (payload as? MessagePayload)?.profileBottomSheet?.showFor(message.actorId!!, itemView.context) + (payload as? MessagePayload)?.profileBottomSheet?.showFor(message, itemView.context) } } else { binding.messageAuthor.setText(R.string.nc_nick_guest) 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 fdcbd46a4..f6d13bd02 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 @@ -118,7 +118,7 @@ class IncomingLocationMessageViewHolder(incomingView: View, payload: Any) : binding.messageAuthor.visibility = View.VISIBLE binding.messageAuthor.text = author binding.messageUserAvatar.setOnClickListener { - (payload as? MessagePayload)?.profileBottomSheet?.showFor(message.actorId!!, itemView.context) + (payload as? MessagePayload)?.profileBottomSheet?.showFor(message, itemView.context) } } else { binding.messageAuthor.setText(R.string.nc_nick_guest) 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 f191071aa..18cbb2c45 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 @@ -140,7 +140,7 @@ class IncomingPollMessageViewHolder(incomingView: View, payload: Any) : binding.messageAuthor.visibility = View.VISIBLE binding.messageAuthor.text = author binding.messageUserAvatar.setOnClickListener { - (payload as? MessagePayload)?.profileBottomSheet?.showFor(message.actorId!!, itemView.context) + (payload as? MessagePayload)?.profileBottomSheet?.showFor(message, itemView.context) } } else { binding.messageAuthor.setText(R.string.nc_nick_guest) 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 d17d61cb8..52e4f2bbc 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 @@ -140,7 +140,7 @@ class IncomingTextMessageViewHolder(itemView: View, payload: Any) : binding.messageAuthor.visibility = View.VISIBLE binding.messageAuthor.text = author binding.messageUserAvatar.setOnClickListener { - (payload as? MessagePayload)?.profileBottomSheet?.showFor(message.actorId!!, itemView.context) + (payload as? MessagePayload)?.profileBottomSheet?.showFor(message, itemView.context) } } else { binding.messageAuthor.setText(R.string.nc_nick_guest) 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 67a101053..e267495af 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 @@ -234,7 +234,7 @@ class IncomingVoiceMessageViewHolder(incomingView: View, payload: Any) : binding.messageAuthor.visibility = View.VISIBLE binding.messageAuthor.text = author binding.messageUserAvatar.setOnClickListener { - (payload as? MessagePayload)?.profileBottomSheet?.showFor(message.actorId!!, itemView.context) + (payload as? MessagePayload)?.profileBottomSheet?.showFor(message, itemView.context) } } else { binding.messageAuthor.setText(R.string.nc_nick_guest) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/PreviewMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/PreviewMessageViewHolder.kt index 95e786761..7ff68e951 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/PreviewMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/PreviewMessageViewHolder.kt @@ -172,7 +172,7 @@ abstract class PreviewMessageViewHolder(itemView: View?, payload: Any?) : userAvatar.setOnClickListener { v: View -> if (payload is MessagePayload) { (payload as MessagePayload).profileBottomSheet.showFor( - message.actorId!!, + message, v.context ) } diff --git a/app/src/main/java/com/nextcloud/talk/ui/bottom/sheet/ProfileBottomSheet.kt b/app/src/main/java/com/nextcloud/talk/ui/bottom/sheet/ProfileBottomSheet.kt index a6834391a..1204d7ebb 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/bottom/sheet/ProfileBottomSheet.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/bottom/sheet/ProfileBottomSheet.kt @@ -21,9 +21,11 @@ import com.nextcloud.talk.chat.ChatActivity import com.nextcloud.talk.bottomsheet.items.BasicListItemWithImage import com.nextcloud.talk.bottomsheet.items.listItemsWithImage import com.nextcloud.talk.data.user.model.User +import com.nextcloud.talk.models.json.chat.ChatMessage import com.nextcloud.talk.models.json.conversations.RoomOverall import com.nextcloud.talk.models.json.hovercard.HoverCardAction import com.nextcloud.talk.models.json.hovercard.HoverCardOverall +import com.nextcloud.talk.models.json.participants.Participant import com.nextcloud.talk.ui.bottom.sheet.ProfileBottomSheet.AllowedAppIds.EMAIL import com.nextcloud.talk.ui.bottom.sheet.ProfileBottomSheet.AllowedAppIds.PROFILE import com.nextcloud.talk.ui.bottom.sheet.ProfileBottomSheet.AllowedAppIds.SPREED @@ -41,10 +43,15 @@ class ProfileBottomSheet(val ncApi: NcApi, val userModel: User, val viewThemeUti private val allowedAppIds = listOf(SPREED.stringValue, PROFILE.stringValue, EMAIL.stringValue) - fun showFor(user: String, context: Context) { + fun showFor(message: ChatMessage, context: Context) { + if (message.actorType == Participant.ActorType.FEDERATED.toString()) { + Log.d(TAG, "no actions for federated users are shown") + return + } + ncApi.hoverCard( ApiUtils.getCredentials(userModel.username, userModel.token), - ApiUtils.getUrlForHoverCard(userModel.baseUrl!!, user) + ApiUtils.getUrlForHoverCard(userModel.baseUrl!!, message.actorId!!) ).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) .subscribe(object : Observer { override fun onSubscribe(d: Disposable) { @@ -55,13 +62,13 @@ class ProfileBottomSheet(val ncApi: NcApi, val userModel: User, val viewThemeUti bottomSheet( hoverCardOverall.ocs!!.data!!.actions!!, hoverCardOverall.ocs!!.data!!.displayName!!, - user, + message.actorId!!, context ) } override fun onError(e: Throwable) { - Log.e(TAG, "Failed to get hover card for user $user", e) + Log.e(TAG, "Failed to get hover card for user " + message.actorId, e) } override fun onComplete() {