diff --git a/app/src/main/java/com/nextcloud/talk/newarch/features/chat/ChatPresenter.kt b/app/src/main/java/com/nextcloud/talk/newarch/features/chat/ChatPresenter.kt index cf0f05132..128a728f6 100644 --- a/app/src/main/java/com/nextcloud/talk/newarch/features/chat/ChatPresenter.kt +++ b/app/src/main/java/com/nextcloud/talk/newarch/features/chat/ChatPresenter.kt @@ -110,6 +110,12 @@ open class ChatPresenter(context: Context, private val onElementClickPa it.parentMessage?.let { parentMessage -> holder.itemView.quotedMessageLayout.isVisible = true + + holder.itemView.quotedMessageLayout.setOnClickListener { + onElementLongClick?.invoke(page, holder, element, mapOf("parentMessage" to "yes")) + true + } + holder.itemView.quoteColoredView.setBackgroundResource(R.color.colorPrimary) holder.itemView.quotedPreviewImage.setOnClickListener { onElementClickPass?.invoke(page, holder, element, mapOf("parentMessage" to "yes")) @@ -118,10 +124,10 @@ open class ChatPresenter(context: Context, private val onElementClickPa parentMessage.imageUrl?.let { previewMessageUrl -> if (previewMessageUrl == "no-preview") { - if (it.selectedIndividualHashMap?.containsKey("mimetype") == true) { + if (parentMessage.selectedIndividualHashMap?.containsKey("mimetype") == true) { holder.itemView.quotedPreviewImage.visibility = View.VISIBLE imageLoader.getImageLoader().loadAny(context, getDrawableResourceIdForMimeType(parentMessage.selectedIndividualHashMap!!["mimetype"])) { - target(holder.itemView.previewImage) + target(holder.itemView.quotedPreviewImage) } } else { holder.itemView.quotedPreviewImage.visibility = View.GONE @@ -140,8 +146,7 @@ open class ChatPresenter(context: Context, private val onElementClickPa } imageLoader.loadImage(holder.itemView.quotedUserAvatar, parentMessage.user.avatar) - holder.itemView.quotedAuthor.text = parentMessage.actorDisplayName - ?: context.getText(R.string.nc_nick_guest) + holder.itemView.quotedAuthor.text = parentMessage.user.name holder.itemView.quotedChatText.text = parentMessage.text holder.itemView.quotedMessageTime?.text = DateFormatter.format(it.createdAt, DateFormatter.Template.TIME) } ?: run { diff --git a/app/src/main/java/com/nextcloud/talk/newarch/features/chat/ChatView.kt b/app/src/main/java/com/nextcloud/talk/newarch/features/chat/ChatView.kt index 5359946f1..231690f41 100644 --- a/app/src/main/java/com/nextcloud/talk/newarch/features/chat/ChatView.kt +++ b/app/src/main/java/com/nextcloud/talk/newarch/features/chat/ChatView.kt @@ -46,6 +46,7 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import coil.ImageLoader import coil.api.load +import coil.api.loadAny import coil.target.Target import coil.transform.CircleCropTransformation import com.bluelinelabs.conductor.RouterTransaction @@ -92,6 +93,7 @@ import com.vanniktech.emoji.EmojiPopup import kotlinx.android.synthetic.main.controller_chat.view.* import kotlinx.android.synthetic.main.item_message_quote.view.* import kotlinx.android.synthetic.main.lobby_view.view.* +import kotlinx.android.synthetic.main.rv_chat_item.view.* import kotlinx.android.synthetic.main.view_message_input.view.* import org.koin.android.ext.android.inject import org.parceler.Parcels @@ -391,11 +393,23 @@ class ChatView(private val bundle: Bundle) : BaseView(), ImageLoaderInterface { loadImage(quotedUserAvatar, chatMessage.user.avatar) chatMessage.imageUrl?.let { previewImageUrl -> - quotedPreviewImage.isVisible = true + if (previewImageUrl == "no-preview") { + if (chatMessage.selectedIndividualHashMap?.containsKey("mimetype") == true) { + quotedPreviewImage.isVisible = true + networkComponents.getImageLoader(viewModel.user).loadAny(context, DrawableUtils.getDrawableResourceIdForMimeType(chatMessage.selectedIndividualHashMap!!["mimetype"])) { + target(quotedPreviewImage) } + } else { + quotedPreviewImage.isVisible = false + } + } else { + quotedPreviewImage.isVisible = true + val mutableMap = mutableMapOf() + if (chatMessage.selectedIndividualHashMap?.containsKey("mimetype") == true) { + mutableMap["mimetype"] = chatMessage.selectedIndividualHashMap!!["mimetype"]!! + } - val px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 96f, resources?.displayMetrics) - quotedPreviewImage.maxHeight = px.toInt() - loadImage(quotedPreviewImage, previewImageUrl) + loadImage(quotedPreviewImage, previewImageUrl, mutableMap) + } } ?: run { quotedPreviewImage.isVisible = false } diff --git a/app/src/main/res/layout/item_message_quote.xml b/app/src/main/res/layout/item_message_quote.xml index a1cc49785..de14f6ad6 100644 --- a/app/src/main/res/layout/item_message_quote.xml +++ b/app/src/main/res/layout/item_message_quote.xml @@ -1,100 +1,92 @@ + android:layout_height="wrap_content" + android:layout_marginBottom="4dp"> + android:background="@color/colorPrimary" /> - + + + android:layout_alignBaseline="@id/quotedUserAvatar" + android:layout_toEndOf="@id/quotedUserAvatar" + android:textSize="14sp" + tools:text="Another user" /> - - - - - + android:maxHeight="96dp" + android:scaleType="fitStart" + tools:src="@tools:sample/backgrounds/scenic" /> + android:autoLink="all" + android:textSize="12sp" + tools:text="Just another chat message" /> + android:textSize="10sp" + tools:text="12:30" /> + android:visibility="gone" /> \ No newline at end of file diff --git a/app/src/main/res/layout/rv_chat_item.xml b/app/src/main/res/layout/rv_chat_item.xml index 9f34323ed..ec632506a 100644 --- a/app/src/main/res/layout/rv_chat_item.xml +++ b/app/src/main/res/layout/rv_chat_item.xml @@ -42,11 +42,11 @@