mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-19 19:49:33 +01:00
Improvements to replies
Signed-off-by: Mario Danic <mario@lovelyhq.com>
This commit is contained in:
parent
b36c70b783
commit
d166276b80
@ -40,7 +40,7 @@ android {
|
|||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
|
|
||||||
versionCode 115
|
versionCode 115
|
||||||
versionName "8"
|
versionName "8.0.0beta1"
|
||||||
|
|
||||||
flavorDimensions "default"
|
flavorDimensions "default"
|
||||||
renderscriptTargetApi 19
|
renderscriptTargetApi 19
|
||||||
|
@ -38,12 +38,15 @@ import androidx.emoji.widget.EmojiTextView
|
|||||||
import autodagger.AutoInjector
|
import autodagger.AutoInjector
|
||||||
import butterknife.BindView
|
import butterknife.BindView
|
||||||
import butterknife.ButterKnife
|
import butterknife.ButterKnife
|
||||||
|
import coil.api.load
|
||||||
|
import coil.transform.CircleCropTransformation
|
||||||
import com.amulyakhare.textdrawable.TextDrawable
|
import com.amulyakhare.textdrawable.TextDrawable
|
||||||
import com.facebook.drawee.view.SimpleDraweeView
|
import com.facebook.drawee.view.SimpleDraweeView
|
||||||
import com.nextcloud.talk.R
|
import com.nextcloud.talk.R
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication
|
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.models.json.chat.ChatMessage
|
import com.nextcloud.talk.models.json.chat.ChatMessage
|
||||||
|
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
|
||||||
@ -77,7 +80,7 @@ class MagicIncomingTextMessageViewHolder(incomingView: View) : MessageHolders
|
|||||||
|
|
||||||
@JvmField
|
@JvmField
|
||||||
@BindView(R.id.quotedUserAvatar)
|
@BindView(R.id.quotedUserAvatar)
|
||||||
var quotedUserAvatar: SimpleDraweeView? = null
|
var quotedUserAvatar: ImageView? = null
|
||||||
|
|
||||||
@JvmField
|
@JvmField
|
||||||
@BindView(R.id.quotedMessageAuthor)
|
@BindView(R.id.quotedMessageAuthor)
|
||||||
@ -85,7 +88,7 @@ class MagicIncomingTextMessageViewHolder(incomingView: View) : MessageHolders
|
|||||||
|
|
||||||
@JvmField
|
@JvmField
|
||||||
@BindView(R.id.quotedMessageImage)
|
@BindView(R.id.quotedMessageImage)
|
||||||
var quotedMessagePreview: SimpleDraweeView? = null
|
var quotedMessagePreview: ImageView? = null
|
||||||
|
|
||||||
@JvmField
|
@JvmField
|
||||||
@BindView(R.id.quotedMessage)
|
@BindView(R.id.quotedMessage)
|
||||||
@ -228,10 +231,15 @@ class MagicIncomingTextMessageViewHolder(incomingView: View) : MessageHolders
|
|||||||
|
|
||||||
message.parentMessage?.let { parentChatMessage ->
|
message.parentMessage?.let { parentChatMessage ->
|
||||||
parentChatMessage.activeUser = message.activeUser
|
parentChatMessage.activeUser = message.activeUser
|
||||||
imageLoader.loadImage(quotedUserAvatar!!, parentChatMessage.user.avatar, null)
|
quotedUserAvatar?.load(parentChatMessage.user.avatar) {
|
||||||
|
addHeader("Authorization", ApiUtils.getCredentials(message.activeUser.username, message.activeUser.token))
|
||||||
|
transformations(CircleCropTransformation())
|
||||||
|
}
|
||||||
parentChatMessage.imageUrl?.let{
|
parentChatMessage.imageUrl?.let{
|
||||||
quotedMessagePreview?.visibility = View.VISIBLE
|
quotedMessagePreview?.visibility = View.VISIBLE
|
||||||
imageLoader.loadImage(quotedMessagePreview, it, null)
|
quotedMessagePreview?.load(it) {
|
||||||
|
addHeader("Authorization", ApiUtils.getCredentials(message.activeUser.username, message.activeUser.token))
|
||||||
|
}
|
||||||
} ?: run {
|
} ?: run {
|
||||||
quotedMessagePreview?.visibility = View.GONE
|
quotedMessagePreview?.visibility = View.GONE
|
||||||
}
|
}
|
||||||
|
@ -34,12 +34,15 @@ import androidx.emoji.widget.EmojiTextView
|
|||||||
import autodagger.AutoInjector
|
import autodagger.AutoInjector
|
||||||
import butterknife.BindView
|
import butterknife.BindView
|
||||||
import butterknife.ButterKnife
|
import butterknife.ButterKnife
|
||||||
|
import coil.api.load
|
||||||
|
import coil.transform.CircleCropTransformation
|
||||||
import com.facebook.drawee.view.SimpleDraweeView
|
import com.facebook.drawee.view.SimpleDraweeView
|
||||||
import com.google.android.flexbox.FlexboxLayout
|
import com.google.android.flexbox.FlexboxLayout
|
||||||
import com.nextcloud.talk.R
|
import com.nextcloud.talk.R
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication
|
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.models.json.chat.ChatMessage
|
import com.nextcloud.talk.models.json.chat.ChatMessage
|
||||||
|
import com.nextcloud.talk.utils.ApiUtils
|
||||||
import com.nextcloud.talk.utils.DisplayUtils.getMessageSelector
|
import com.nextcloud.talk.utils.DisplayUtils.getMessageSelector
|
||||||
import com.nextcloud.talk.utils.DisplayUtils.searchAndReplaceWithMentionSpan
|
import com.nextcloud.talk.utils.DisplayUtils.searchAndReplaceWithMentionSpan
|
||||||
import com.nextcloud.talk.utils.TextMatchers
|
import com.nextcloud.talk.utils.TextMatchers
|
||||||
@ -63,7 +66,7 @@ class MagicOutcomingTextMessageViewHolder(itemView: View) : OutcomingTextMessage
|
|||||||
|
|
||||||
@JvmField
|
@JvmField
|
||||||
@BindView(R.id.quotedUserAvatar)
|
@BindView(R.id.quotedUserAvatar)
|
||||||
var quotedUserAvatar: SimpleDraweeView? = null
|
var quotedUserAvatar: ImageView? = null
|
||||||
|
|
||||||
@JvmField
|
@JvmField
|
||||||
@BindView(R.id.quotedMessageAuthor)
|
@BindView(R.id.quotedMessageAuthor)
|
||||||
@ -71,7 +74,7 @@ class MagicOutcomingTextMessageViewHolder(itemView: View) : OutcomingTextMessage
|
|||||||
|
|
||||||
@JvmField
|
@JvmField
|
||||||
@BindView(R.id.quotedMessageImage)
|
@BindView(R.id.quotedMessageImage)
|
||||||
var quotedMessagePreview: SimpleDraweeView? = null
|
var quotedMessagePreview: ImageView? = null
|
||||||
|
|
||||||
@JvmField
|
@JvmField
|
||||||
@BindView(R.id.quotedMessage)
|
@BindView(R.id.quotedMessage)
|
||||||
@ -151,10 +154,15 @@ class MagicOutcomingTextMessageViewHolder(itemView: View) : OutcomingTextMessage
|
|||||||
|
|
||||||
message.parentMessage?.let { parentChatMessage ->
|
message.parentMessage?.let { parentChatMessage ->
|
||||||
parentChatMessage.activeUser = message.activeUser
|
parentChatMessage.activeUser = message.activeUser
|
||||||
imageLoader.loadImage(quotedUserAvatar, parentChatMessage.user.avatar, null)
|
quotedUserAvatar?.load(parentChatMessage.user.avatar) {
|
||||||
|
transformations(CircleCropTransformation())
|
||||||
|
addHeader("Authorization", ApiUtils.getCredentials(message.activeUser.username, message.activeUser.token))
|
||||||
|
}
|
||||||
parentChatMessage.imageUrl?.let{
|
parentChatMessage.imageUrl?.let{
|
||||||
quotedMessagePreview?.visibility = View.VISIBLE
|
quotedMessagePreview?.visibility = View.VISIBLE
|
||||||
imageLoader.loadImage(quotedMessagePreview, it, null)
|
quotedMessagePreview?.load(it) {
|
||||||
|
addHeader("Authorization", ApiUtils.getCredentials(message.activeUser.username, message.activeUser.token))
|
||||||
|
}
|
||||||
} ?: run {
|
} ?: run {
|
||||||
quotedMessagePreview?.visibility = View.GONE
|
quotedMessagePreview?.visibility = View.GONE
|
||||||
}
|
}
|
||||||
|
@ -840,8 +840,8 @@ class ChatController(args: Bundle) : BaseController(args), MessagesListAdapter
|
|||||||
}
|
}
|
||||||
|
|
||||||
messageInput?.setText("")
|
messageInput?.setText("")
|
||||||
val replyMessageId: Long? = view?.findViewById<RelativeLayout>(R.id.quotedChatMessageView)?.tag as Long?
|
val replyMessageId: Int? = view?.findViewById<RelativeLayout>(R.id.quotedChatMessageView)?.tag as Int
|
||||||
sendMessage(editable, if (view?.findViewById<RelativeLayout>(R.id.quotedChatMessageView)?.visibility == View.VISIBLE) replyMessageId?.toInt() else null )
|
sendMessage(editable, if (view?.findViewById<RelativeLayout>(R.id.quotedChatMessageView)?.visibility == View.VISIBLE) replyMessageId else null )
|
||||||
cancelReply()
|
cancelReply()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1258,8 +1258,8 @@ class ChatController(args: Bundle) : BaseController(args), MessagesListAdapter
|
|||||||
@OnClick(R.id.cancelReplyButton)
|
@OnClick(R.id.cancelReplyButton)
|
||||||
fun cancelReply() {
|
fun cancelReply() {
|
||||||
quotedChatMessageView?.visibility = View.GONE
|
quotedChatMessageView?.visibility = View.GONE
|
||||||
messageInputView?.findViewById<ImageButton>(R.id.attachmentButton)?.visibility = View.VISIBLE
|
messageInputView!!.findViewById<ImageButton>(R.id.attachmentButton)?.visibility = View.VISIBLE
|
||||||
messageInputView?.findViewById<Space>(R.id.attachmentButtonSpace)?.visibility = View.VISIBLE
|
messageInputView!!.findViewById<Space>(R.id.attachmentButtonSpace)?.visibility = View.VISIBLE
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onMessageViewLongClick(view: View?, message: IMessage?) {
|
override fun onMessageViewLongClick(view: View?, message: IMessage?) {
|
||||||
|
@ -4,7 +4,8 @@
|
|||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:id="@+id/quotedChatMessageView"
|
android:id="@+id/quotedChatMessageView"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="8dp">
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:id="@+id/quoteColoredView"
|
android:id="@+id/quoteColoredView"
|
||||||
@ -15,13 +16,10 @@
|
|||||||
android:layout_marginEnd="4dp"
|
android:layout_marginEnd="4dp"
|
||||||
android:background="@color/colorPrimary"></View>
|
android:background="@color/colorPrimary"></View>
|
||||||
|
|
||||||
<com.facebook.drawee.view.SimpleDraweeView
|
<ImageView
|
||||||
android:id="@+id/quotedUserAvatar"
|
android:id="@+id/quotedUserAvatar"
|
||||||
android:layout_width="8dp"
|
android:layout_width="16dp"
|
||||||
android:layout_height="8dp"
|
android:layout_height="16dp"
|
||||||
android:scaleType="centerInside"
|
|
||||||
android:adjustViewBounds="true"
|
|
||||||
app:roundAsCircle="true"
|
|
||||||
android:layout_alignParentTop="true"
|
android:layout_alignParentTop="true"
|
||||||
android:layout_marginEnd="4dp"
|
android:layout_marginEnd="4dp"
|
||||||
android:layout_toEndOf="@id/quoteColoredView"
|
android:layout_toEndOf="@id/quoteColoredView"
|
||||||
@ -44,19 +42,20 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_below="@id/quotedUserAvatar"
|
android:layout_below="@id/quotedUserAvatar"
|
||||||
android:layout_alignStart="@id/quotedUserAvatar"
|
android:layout_alignStart="@id/quotedUserAvatar"
|
||||||
|
android:layout_toStartOf="@id/cancelReplyButton"
|
||||||
android:layout_marginTop="4dp"
|
android:layout_marginTop="4dp"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
app:alignContent="stretch"
|
app:alignContent="stretch"
|
||||||
app:alignItems="stretch"
|
app:alignItems="stretch"
|
||||||
app:flexWrap="wrap"
|
app:flexWrap="wrap"
|
||||||
app:justifyContent="flex_end">
|
app:justifyContent="flex_start">
|
||||||
|
|
||||||
<com.facebook.drawee.view.SimpleDraweeView
|
<ImageView
|
||||||
android:id="@+id/quotedMessageImage"
|
android:id="@+id/quotedMessageImage"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:adjustViewBounds="true"
|
android:adjustViewBounds="true"
|
||||||
android:scaleType="centerInside"
|
android:scaleType="fitCenter"
|
||||||
app:layout_alignSelf="flex_start"
|
app:layout_alignSelf="flex_start"
|
||||||
app:layout_flexGrow="1"
|
app:layout_flexGrow="1"
|
||||||
app:layout_wrapBefore="true"
|
app:layout_wrapBefore="true"
|
||||||
@ -87,4 +86,16 @@
|
|||||||
|
|
||||||
</com.google.android.flexbox.FlexboxLayout>
|
</com.google.android.flexbox.FlexboxLayout>
|
||||||
|
|
||||||
|
<ImageButton
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:layout_marginStart="8dp"
|
||||||
|
android:layout_marginEnd="8dp"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:background="@drawable/ic_cancel_black_24dp"
|
||||||
|
android:backgroundTint="@color/grey_600"
|
||||||
|
android:id="@+id/cancelReplyButton"/>
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
Loading…
Reference in New Issue
Block a user