From d166276b805b1231c4c738f0a4ad1fbf3c79bbf1 Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Mon, 13 Jan 2020 12:36:52 +0100 Subject: [PATCH] Improvements to replies Signed-off-by: Mario Danic --- app/build.gradle | 2 +- .../MagicIncomingTextMessageViewHolder.kt | 16 +++++++--- .../MagicOutcomingTextMessageViewHolder.kt | 16 +++++++--- .../talk/controllers/ChatController.kt | 8 ++--- .../main/res/layout/item_message_quote.xml | 31 +++++++++++++------ 5 files changed, 50 insertions(+), 23 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 0d7fcbd03..d007cb3f8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -40,7 +40,7 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" versionCode 115 - versionName "8" + versionName "8.0.0beta1" flavorDimensions "default" renderscriptTargetApi 19 diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.kt index bd6412a27..72b39267e 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.kt @@ -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 } diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.kt index ab06e8c50..27266ffe3 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.kt @@ -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 } diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt index ae4970bd9..27cbd68e5 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt +++ b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt @@ -840,8 +840,8 @@ class ChatController(args: Bundle) : BaseController(args), MessagesListAdapter } messageInput?.setText("") - val replyMessageId: Long? = view?.findViewById(R.id.quotedChatMessageView)?.tag as Long? - sendMessage(editable, if (view?.findViewById(R.id.quotedChatMessageView)?.visibility == View.VISIBLE) replyMessageId?.toInt() else null ) + val replyMessageId: Int? = view?.findViewById(R.id.quotedChatMessageView)?.tag as Int + sendMessage(editable, if (view?.findViewById(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(R.id.attachmentButton)?.visibility = View.VISIBLE - messageInputView?.findViewById(R.id.attachmentButtonSpace)?.visibility = View.VISIBLE + messageInputView!!.findViewById(R.id.attachmentButton)?.visibility = View.VISIBLE + messageInputView!!.findViewById(R.id.attachmentButtonSpace)?.visibility = View.VISIBLE } override fun onMessageViewLongClick(view: View?, message: IMessage?) { diff --git a/app/src/main/res/layout/item_message_quote.xml b/app/src/main/res/layout/item_message_quote.xml index ef981bb7a..fa87f1b02 100644 --- a/app/src/main/res/layout/item_message_quote.xml +++ b/app/src/main/res/layout/item_message_quote.xml @@ -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"> - + app:justifyContent="flex_start"> - + + \ No newline at end of file