mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-21 04:29:45 +01:00
Fix loading, long clicks, etc
Signed-off-by: Mario Danic <mario@lovelyhq.com>
This commit is contained in:
parent
25c2260f82
commit
a8eefd8b34
@ -110,6 +110,12 @@ open class ChatPresenter<T : Any>(context: Context, private val onElementClickPa
|
|||||||
|
|
||||||
it.parentMessage?.let { parentMessage ->
|
it.parentMessage?.let { parentMessage ->
|
||||||
holder.itemView.quotedMessageLayout.isVisible = true
|
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.quoteColoredView.setBackgroundResource(R.color.colorPrimary)
|
||||||
holder.itemView.quotedPreviewImage.setOnClickListener {
|
holder.itemView.quotedPreviewImage.setOnClickListener {
|
||||||
onElementClickPass?.invoke(page, holder, element, mapOf("parentMessage" to "yes"))
|
onElementClickPass?.invoke(page, holder, element, mapOf("parentMessage" to "yes"))
|
||||||
@ -118,10 +124,10 @@ open class ChatPresenter<T : Any>(context: Context, private val onElementClickPa
|
|||||||
|
|
||||||
parentMessage.imageUrl?.let { previewMessageUrl ->
|
parentMessage.imageUrl?.let { previewMessageUrl ->
|
||||||
if (previewMessageUrl == "no-preview") {
|
if (previewMessageUrl == "no-preview") {
|
||||||
if (it.selectedIndividualHashMap?.containsKey("mimetype") == true) {
|
if (parentMessage.selectedIndividualHashMap?.containsKey("mimetype") == true) {
|
||||||
holder.itemView.quotedPreviewImage.visibility = View.VISIBLE
|
holder.itemView.quotedPreviewImage.visibility = View.VISIBLE
|
||||||
imageLoader.getImageLoader().loadAny(context, getDrawableResourceIdForMimeType(parentMessage.selectedIndividualHashMap!!["mimetype"])) {
|
imageLoader.getImageLoader().loadAny(context, getDrawableResourceIdForMimeType(parentMessage.selectedIndividualHashMap!!["mimetype"])) {
|
||||||
target(holder.itemView.previewImage)
|
target(holder.itemView.quotedPreviewImage)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
holder.itemView.quotedPreviewImage.visibility = View.GONE
|
holder.itemView.quotedPreviewImage.visibility = View.GONE
|
||||||
@ -140,8 +146,7 @@ open class ChatPresenter<T : Any>(context: Context, private val onElementClickPa
|
|||||||
}
|
}
|
||||||
|
|
||||||
imageLoader.loadImage(holder.itemView.quotedUserAvatar, parentMessage.user.avatar)
|
imageLoader.loadImage(holder.itemView.quotedUserAvatar, parentMessage.user.avatar)
|
||||||
holder.itemView.quotedAuthor.text = parentMessage.actorDisplayName
|
holder.itemView.quotedAuthor.text = parentMessage.user.name
|
||||||
?: context.getText(R.string.nc_nick_guest)
|
|
||||||
holder.itemView.quotedChatText.text = parentMessage.text
|
holder.itemView.quotedChatText.text = parentMessage.text
|
||||||
holder.itemView.quotedMessageTime?.text = DateFormatter.format(it.createdAt, DateFormatter.Template.TIME)
|
holder.itemView.quotedMessageTime?.text = DateFormatter.format(it.createdAt, DateFormatter.Template.TIME)
|
||||||
} ?: run {
|
} ?: run {
|
||||||
|
@ -46,6 +46,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
|
|||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import coil.ImageLoader
|
import coil.ImageLoader
|
||||||
import coil.api.load
|
import coil.api.load
|
||||||
|
import coil.api.loadAny
|
||||||
import coil.target.Target
|
import coil.target.Target
|
||||||
import coil.transform.CircleCropTransformation
|
import coil.transform.CircleCropTransformation
|
||||||
import com.bluelinelabs.conductor.RouterTransaction
|
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.controller_chat.view.*
|
||||||
import kotlinx.android.synthetic.main.item_message_quote.view.*
|
import kotlinx.android.synthetic.main.item_message_quote.view.*
|
||||||
import kotlinx.android.synthetic.main.lobby_view.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 kotlinx.android.synthetic.main.view_message_input.view.*
|
||||||
import org.koin.android.ext.android.inject
|
import org.koin.android.ext.android.inject
|
||||||
import org.parceler.Parcels
|
import org.parceler.Parcels
|
||||||
@ -391,11 +393,23 @@ class ChatView(private val bundle: Bundle) : BaseView(), ImageLoaderInterface {
|
|||||||
loadImage(quotedUserAvatar, chatMessage.user.avatar)
|
loadImage(quotedUserAvatar, chatMessage.user.avatar)
|
||||||
|
|
||||||
chatMessage.imageUrl?.let { previewImageUrl ->
|
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<String, String>()
|
||||||
|
if (chatMessage.selectedIndividualHashMap?.containsKey("mimetype") == true) {
|
||||||
|
mutableMap["mimetype"] = chatMessage.selectedIndividualHashMap!!["mimetype"]!!
|
||||||
|
}
|
||||||
|
|
||||||
val px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 96f, resources?.displayMetrics)
|
loadImage(quotedPreviewImage, previewImageUrl, mutableMap)
|
||||||
quotedPreviewImage.maxHeight = px.toInt()
|
}
|
||||||
loadImage(quotedPreviewImage, previewImageUrl)
|
|
||||||
} ?: run {
|
} ?: run {
|
||||||
quotedPreviewImage.isVisible = false
|
quotedPreviewImage.isVisible = false
|
||||||
}
|
}
|
||||||
|
@ -1,100 +1,92 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:id="@+id/quotedMessageLayout"
|
android:id="@+id/quotedMessageLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="4dp">
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:id="@+id/quoteColoredView"
|
android:id="@+id/quoteColoredView"
|
||||||
android:layout_width="2dp"
|
android:layout_width="2dp"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_alignTop="@id/quotedTextLayout"
|
android:layout_alignTop="@id/quotedTextLayout"
|
||||||
android:layout_alignParentStart="true"
|
|
||||||
android:layout_alignBottom="@id/quotedTextLayout"
|
android:layout_alignBottom="@id/quotedTextLayout"
|
||||||
|
android:layout_alignParentStart="true"
|
||||||
android:layout_marginEnd="4dp"
|
android:layout_marginEnd="4dp"
|
||||||
android:background="@color/colorPrimary"
|
android:background="@color/colorPrimary" />
|
||||||
/>
|
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
|
android:id="@+id/quotedTextLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:id="@+id/quotedTextLayout"
|
|
||||||
android:layout_toStartOf="@id/cancelReplyButton"
|
android:layout_toStartOf="@id/cancelReplyButton"
|
||||||
android:layout_marginEnd="8dp"
|
|
||||||
android:layout_toEndOf="@id/quoteColoredView">
|
android:layout_toEndOf="@id/quoteColoredView">
|
||||||
|
|
||||||
<RelativeLayout
|
|
||||||
|
<com.google.android.material.imageview.ShapeableImageView
|
||||||
|
android:id="@+id/quotedUserAvatar"
|
||||||
|
android:layout_width="16dp"
|
||||||
|
android:layout_height="16dp"
|
||||||
|
android:layout_alignParentTop="true"
|
||||||
|
android:layout_marginEnd="8dp"
|
||||||
|
app:shapeAppearanceOverlay="@style/circleImageView"
|
||||||
|
tools:srcCompat="@tools:sample/avatars" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/quotedAuthor"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_alignBaseline="@id/quotedUserAvatar"
|
||||||
android:id="@+id/quotedAuthorLayout">
|
android:layout_toEndOf="@id/quotedUserAvatar"
|
||||||
|
android:textSize="14sp"
|
||||||
|
tools:text="Another user" />
|
||||||
|
|
||||||
<com.google.android.material.imageview.ShapeableImageView
|
|
||||||
android:id="@+id/quotedUserAvatar"
|
|
||||||
android:layout_width="16dp"
|
|
||||||
android:layout_height="16dp"
|
|
||||||
android:layout_alignParentTop="true"
|
|
||||||
android:layout_marginEnd="8dp"
|
|
||||||
app:shapeAppearanceOverlay="@style/circleImageView"
|
|
||||||
tools:srcCompat="@tools:sample/avatars" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_toEndOf="@id/quotedUserAvatar"
|
|
||||||
android:textSize="14sp"
|
|
||||||
android:id="@+id/quotedAuthor"
|
|
||||||
android:layout_alignBaseline="@id/quotedUserAvatar"
|
|
||||||
tools:text="Another user"/>
|
|
||||||
|
|
||||||
</RelativeLayout>
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/quotedPreviewImage"
|
android:id="@+id/quotedPreviewImage"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_below="@id/quotedAuthorLayout"
|
android:layout_below="@id/quotedAuthor"
|
||||||
|
android:layout_alignStart="@id/quotedAuthor"
|
||||||
android:adjustViewBounds="true"
|
android:adjustViewBounds="true"
|
||||||
android:layout_alignParentStart="true"
|
android:maxHeight="96dp"
|
||||||
android:scaleType="fitCenter"
|
android:scaleType="fitStart"
|
||||||
android:layout_marginStart="8dp"
|
tools:src="@tools:sample/backgrounds/scenic" />
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
tools:src="@tools:sample/backgrounds/scenic"/>
|
|
||||||
|
|
||||||
<androidx.emoji.widget.EmojiTextView
|
<androidx.emoji.widget.EmojiTextView
|
||||||
|
android:id="@+id/quotedChatText"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_alignStart="@id/quotedAuthor"
|
||||||
android:autoLink="all"
|
|
||||||
android:id="@+id/quotedChatText"
|
|
||||||
android:textSize="12sp"
|
|
||||||
android:layout_below="@id/quotedPreviewImage"
|
android:layout_below="@id/quotedPreviewImage"
|
||||||
tools:text="Just another chat message"/>
|
android:autoLink="all"
|
||||||
|
android:textSize="12sp"
|
||||||
|
tools:text="Just another chat message" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
android:id="@+id/quotedMessageTime"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_alignParentEnd="true"
|
|
||||||
android:layout_below="@id/quotedChatText"
|
android:layout_below="@id/quotedChatText"
|
||||||
android:textSize="10sp"
|
android:layout_alignParentEnd="true"
|
||||||
android:textAlignment="textEnd"
|
android:textAlignment="textEnd"
|
||||||
android:id="@+id/quotedMessageTime"
|
android:textSize="10sp"
|
||||||
tools:text="12:30"/>
|
tools:text="12:30" />
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|
||||||
<ImageButton
|
<ImageButton
|
||||||
|
android:id="@+id/cancelReplyButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:visibility="visible"
|
|
||||||
android:layout_centerVertical="true"
|
|
||||||
android:layout_marginHorizontal="8dp"
|
|
||||||
android:layout_alignParentEnd="true"
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:layout_marginStart="8dp"
|
||||||
android:background="@drawable/ic_cancel_black_24dp"
|
android:background="@drawable/ic_cancel_black_24dp"
|
||||||
android:backgroundTint="@color/grey_600"
|
android:backgroundTint="@color/grey_600"
|
||||||
android:id="@+id/cancelReplyButton"/>
|
android:visibility="gone" />
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
@ -42,11 +42,11 @@
|
|||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/previewImage"
|
android:id="@+id/previewImage"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:adjustViewBounds="true"
|
android:adjustViewBounds="true"
|
||||||
android:layout_alignParentStart="true"
|
android:layout_alignParentStart="true"
|
||||||
android:scaleType="fitCenter"
|
android:scaleType="fitStart"
|
||||||
android:layout_below="@id/quotedMessageLayout"
|
android:layout_below="@id/quotedMessageLayout"
|
||||||
android:layout_marginStart="40dp"
|
android:layout_marginStart="40dp"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
|
@ -26,7 +26,6 @@
|
|||||||
<include layout="@layout/item_message_quote"
|
<include layout="@layout/item_message_quote"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="4dp"
|
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user