Improvements to replies

Signed-off-by: Mario Danic <mario@lovelyhq.com>
This commit is contained in:
Mario Danic 2020-01-13 12:36:52 +01:00
parent b36c70b783
commit d166276b80
No known key found for this signature in database
GPG key ID: CDE0BBD2738C4CC0
5 changed files with 50 additions and 23 deletions

View file

@ -40,7 +40,7 @@ android {
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
versionCode 115
versionName "8"
versionName "8.0.0beta1"
flavorDimensions "default"
renderscriptTargetApi 19

View file

@ -38,12 +38,15 @@ import androidx.emoji.widget.EmojiTextView
import autodagger.AutoInjector
import butterknife.BindView
import butterknife.ButterKnife
import coil.api.load
import coil.transform.CircleCropTransformation
import com.amulyakhare.textdrawable.TextDrawable
import com.facebook.drawee.view.SimpleDraweeView
import com.nextcloud.talk.R
import com.nextcloud.talk.application.NextcloudTalkApplication
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
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.TextMatchers
import com.nextcloud.talk.utils.preferences.AppPreferences
@ -77,7 +80,7 @@ class MagicIncomingTextMessageViewHolder(incomingView: View) : MessageHolders
@JvmField
@BindView(R.id.quotedUserAvatar)
var quotedUserAvatar: SimpleDraweeView? = null
var quotedUserAvatar: ImageView? = null
@JvmField
@BindView(R.id.quotedMessageAuthor)
@ -85,7 +88,7 @@ class MagicIncomingTextMessageViewHolder(incomingView: View) : MessageHolders
@JvmField
@BindView(R.id.quotedMessageImage)
var quotedMessagePreview: SimpleDraweeView? = null
var quotedMessagePreview: ImageView? = null
@JvmField
@BindView(R.id.quotedMessage)
@ -228,10 +231,15 @@ class MagicIncomingTextMessageViewHolder(incomingView: View) : MessageHolders
message.parentMessage?.let { parentChatMessage ->
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{
quotedMessagePreview?.visibility = View.VISIBLE
imageLoader.loadImage(quotedMessagePreview, it, null)
quotedMessagePreview?.load(it) {
addHeader("Authorization", ApiUtils.getCredentials(message.activeUser.username, message.activeUser.token))
}
} ?: run {
quotedMessagePreview?.visibility = View.GONE
}

View file

@ -34,12 +34,15 @@ import androidx.emoji.widget.EmojiTextView
import autodagger.AutoInjector
import butterknife.BindView
import butterknife.ButterKnife
import coil.api.load
import coil.transform.CircleCropTransformation
import com.facebook.drawee.view.SimpleDraweeView
import com.google.android.flexbox.FlexboxLayout
import com.nextcloud.talk.R
import com.nextcloud.talk.application.NextcloudTalkApplication
import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
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.searchAndReplaceWithMentionSpan
import com.nextcloud.talk.utils.TextMatchers
@ -63,7 +66,7 @@ class MagicOutcomingTextMessageViewHolder(itemView: View) : OutcomingTextMessage
@JvmField
@BindView(R.id.quotedUserAvatar)
var quotedUserAvatar: SimpleDraweeView? = null
var quotedUserAvatar: ImageView? = null
@JvmField
@BindView(R.id.quotedMessageAuthor)
@ -71,7 +74,7 @@ class MagicOutcomingTextMessageViewHolder(itemView: View) : OutcomingTextMessage
@JvmField
@BindView(R.id.quotedMessageImage)
var quotedMessagePreview: SimpleDraweeView? = null
var quotedMessagePreview: ImageView? = null
@JvmField
@BindView(R.id.quotedMessage)
@ -151,10 +154,15 @@ class MagicOutcomingTextMessageViewHolder(itemView: View) : OutcomingTextMessage
message.parentMessage?.let { parentChatMessage ->
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{
quotedMessagePreview?.visibility = View.VISIBLE
imageLoader.loadImage(quotedMessagePreview, it, null)
quotedMessagePreview?.load(it) {
addHeader("Authorization", ApiUtils.getCredentials(message.activeUser.username, message.activeUser.token))
}
} ?: run {
quotedMessagePreview?.visibility = View.GONE
}

View file

@ -840,8 +840,8 @@ class ChatController(args: Bundle) : BaseController(args), MessagesListAdapter
}
messageInput?.setText("")
val replyMessageId: Long? = view?.findViewById<RelativeLayout>(R.id.quotedChatMessageView)?.tag as Long?
sendMessage(editable, if (view?.findViewById<RelativeLayout>(R.id.quotedChatMessageView)?.visibility == View.VISIBLE) replyMessageId?.toInt() else null )
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 else null )
cancelReply()
}
}
@ -1258,8 +1258,8 @@ class ChatController(args: Bundle) : BaseController(args), MessagesListAdapter
@OnClick(R.id.cancelReplyButton)
fun cancelReply() {
quotedChatMessageView?.visibility = View.GONE
messageInputView?.findViewById<ImageButton>(R.id.attachmentButton)?.visibility = View.VISIBLE
messageInputView?.findViewById<Space>(R.id.attachmentButtonSpace)?.visibility = View.VISIBLE
messageInputView!!.findViewById<ImageButton>(R.id.attachmentButton)?.visibility = View.VISIBLE
messageInputView!!.findViewById<Space>(R.id.attachmentButtonSpace)?.visibility = View.VISIBLE
}
override fun onMessageViewLongClick(view: View?, message: IMessage?) {

View file

@ -4,7 +4,8 @@
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/quotedChatMessageView"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:layout_marginBottom="8dp">
<View
android:id="@+id/quoteColoredView"
@ -15,13 +16,10 @@
android:layout_marginEnd="4dp"
android:background="@color/colorPrimary"></View>
<com.facebook.drawee.view.SimpleDraweeView
<ImageView
android:id="@+id/quotedUserAvatar"
android:layout_width="8dp"
android:layout_height="8dp"
android:scaleType="centerInside"
android:adjustViewBounds="true"
app:roundAsCircle="true"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_alignParentTop="true"
android:layout_marginEnd="4dp"
android:layout_toEndOf="@id/quoteColoredView"
@ -44,19 +42,20 @@
android:layout_height="wrap_content"
android:layout_below="@id/quotedUserAvatar"
android:layout_alignStart="@id/quotedUserAvatar"
android:layout_toStartOf="@id/cancelReplyButton"
android:layout_marginTop="4dp"
android:orientation="vertical"
app:alignContent="stretch"
app:alignItems="stretch"
app:flexWrap="wrap"
app:justifyContent="flex_end">
app:justifyContent="flex_start">
<com.facebook.drawee.view.SimpleDraweeView
<ImageView
android:id="@+id/quotedMessageImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:scaleType="fitCenter"
app:layout_alignSelf="flex_start"
app:layout_flexGrow="1"
app:layout_wrapBefore="true"
@ -87,4 +86,16 @@
</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>