diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingDeckCardViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingDeckCardViewHolder.kt index 212a91765..2f8731426 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingDeckCardViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingDeckCardViewHolder.kt @@ -83,6 +83,7 @@ class IncomingDeckCardViewHolder(incomingView: View, payload: Any) : MessageHold binding.messageTime.text = dateUtils.getLocalTimeStringFromTimestamp(message.timestamp) setAvatarAndAuthorOnMessageItem(message) + showDeckCard(message) colorizeMessageBubble(message) @@ -91,8 +92,6 @@ class IncomingDeckCardViewHolder(incomingView: View, payload: Any) : MessageHold // parent message handling setParentMessageDataOnMessageItem(message) - showDeckCard(message) - binding.cardView.setOnLongClickListener { l: View? -> commonMessageInterface.onOpenMessageActionsDialog(message) true @@ -136,6 +135,8 @@ class IncomingDeckCardViewHolder(incomingView: View, payload: Any) : MessageHold stackName, boardName ) + binding.cardName.visibility = View.VISIBLE + binding.cardDescription.visibility = View.VISIBLE binding.cardName.text = cardName binding.cardDescription.text = cardDescription } diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/OutgoingDeckCardViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/OutgoingDeckCardViewHolder.kt index cd9a46501..cab902dbd 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/OutgoingDeckCardViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/OutgoingDeckCardViewHolder.kt @@ -87,6 +87,8 @@ class OutgoingDeckCardViewHolder( itemView.isSelected = false + showDeckCard(message) + // parent message handling setParentMessageDataOnMessageItem(message) @@ -111,8 +113,6 @@ class OutgoingDeckCardViewHolder( binding.checkMark.contentDescription = readStatusContentDescriptionString - showDeckCard(message) - binding.cardView.setOnClickListener { val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(cardLink)) browserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) @@ -142,16 +142,16 @@ class OutgoingDeckCardViewHolder( } } } + val cardDescription = String.format( + context.resources.getString(R.string.deck_card_description), + stackName, + boardName + ) - if (cardName?.isNotEmpty() == true) { - val cardDescription = String.format( - context.resources.getString(R.string.deck_card_description), - stackName, - boardName - ) - binding.cardName.text = cardName - binding.cardDescription.text = cardDescription - } + binding.cardName.visibility = View.VISIBLE + binding.cardDescription.visibility = View.VISIBLE + binding.cardName.text = cardName + binding.cardDescription.text = cardDescription } private fun longClickOnReaction(chatMessage: ChatMessage) { diff --git a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt index f5637769f..b737ad459 100644 --- a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt @@ -83,6 +83,7 @@ import com.nextcloud.talk.activities.TakePhotoActivity import com.nextcloud.talk.adapters.messages.CallStartedMessageInterface import com.nextcloud.talk.adapters.messages.CallStartedViewHolder import com.nextcloud.talk.adapters.messages.CommonMessageInterface +import com.nextcloud.talk.adapters.messages.IncomingDeckCardViewHolder import com.nextcloud.talk.adapters.messages.IncomingLinkPreviewMessageViewHolder import com.nextcloud.talk.adapters.messages.IncomingLocationMessageViewHolder import com.nextcloud.talk.adapters.messages.IncomingPollMessageViewHolder @@ -96,6 +97,7 @@ import com.nextcloud.talk.adapters.messages.OutcomingPollMessageViewHolder import com.nextcloud.talk.adapters.messages.OutcomingPreviewMessageViewHolder import com.nextcloud.talk.adapters.messages.OutcomingTextMessageViewHolder import com.nextcloud.talk.adapters.messages.OutcomingVoiceMessageViewHolder +import com.nextcloud.talk.adapters.messages.OutgoingDeckCardViewHolder import com.nextcloud.talk.adapters.messages.PreviewMessageInterface import com.nextcloud.talk.adapters.messages.PreviewMessageViewHolder import com.nextcloud.talk.adapters.messages.SystemMessageInterface @@ -1291,6 +1293,18 @@ class ChatActivity : R.layout.item_custom_outcoming_link_preview_message, this ) + + messageHolders.registerContentType( + CONTENT_TYPE_DECK_CARD, + IncomingDeckCardViewHolder::class.java, + payload, + R.layout.item_custom_incoming_deck_card_message, + OutgoingDeckCardViewHolder::class.java, + payload, + R.layout.item_custom_outcoming_deck_card_message, + this + ) + return messageHolders } diff --git a/app/src/main/res/layout/item_custom_incoming_deck_card_message.xml b/app/src/main/res/layout/item_custom_incoming_deck_card_message.xml index 70a15e7da..b1f85e85a 100644 --- a/app/src/main/res/layout/item_custom_incoming_deck_card_message.xml +++ b/app/src/main/res/layout/item_custom_incoming_deck_card_message.xml @@ -53,6 +53,11 @@ android:textSize="12sp" tools:text="Jane Doe" /> + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="vertical"> + <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" @@ -71,31 +76,26 @@ android:layout_marginStart="10dp" android:ellipsize="end" android:lineSpacingMultiplier="1.2" - android:maxLines="2" - android:textAlignment="viewStart" android:textIsSelectable="false" + android:layout_marginBottom="12dp" android:textStyle="bold" android:visibility="gone" - tools:text="Name of Website" + app:layout_flexGrow="1" + tools:text="Card Name" tools:visibility="visible" /> </LinearLayout> - <LinearLayout - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:orientation="vertical"> - <androidx.emoji2.widget.EmojiTextView android:id="@+id/cardDescription" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="end" android:lineSpacingMultiplier="1.2" - android:maxLines="2" android:textAlignment="viewStart" android:textIsSelectable="false" android:visibility="gone" - tools:text="Description of Website" + app:layout_flexGrow="1" + tools:text="Card Description" tools:visibility="visible" /> <TextView @@ -107,7 +107,6 @@ android:textColor="@color/no_emphasis_text" android:textIsSelectable="false" tools:text="12:38" /> - </LinearLayout> <include diff --git a/app/src/main/res/layout/item_custom_outcoming_deck_card_message.xml b/app/src/main/res/layout/item_custom_outcoming_deck_card_message.xml index f1a137782..1f79523ad 100644 --- a/app/src/main/res/layout/item_custom_outcoming_deck_card_message.xml +++ b/app/src/main/res/layout/item_custom_outcoming_deck_card_message.xml @@ -1,14 +1,15 @@ -<?xml version="1.0" encoding="utf-8"?><!-- +<?xml version="1.0" encoding="utf-8"?> +<!-- ~ Nextcloud Talk - Android Client ~ - ~ SPDX-FileCopyrightText: 2024 Sowjanya Kota<sowjanya.kch@gmail.com> + ~ SPDX-FileCopyrightText: 2024 Sowjanya Kota <sowjanya.kch@gmail.com> ~ SPDX-License-Identifier: GPL-3.0-or-later - --> +--> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" - android:id="@+id/cardView" + android:id ="@+id/cardView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="16dp" @@ -16,93 +17,72 @@ android:layout_marginRight="16dp" android:layout_marginBottom="2dp"> - <ImageView - android:id="@id/messageUserAvatar" - android:layout_width="24dp" - android:layout_height="24dp" - android:layout_alignParentTop="true" - android:layout_marginEnd="8dp" - android:contentDescription="@string/avatar" /> - <com.google.android.flexbox.FlexboxLayout android:id="@id/bubble" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginEnd="@dimen/message_incoming_bubble_margin_right" - android:layout_toEndOf="@id/messageUserAvatar" - android:orientation="vertical" + android:layout_alignParentEnd="true" + android:layout_marginStart="@dimen/message_outcoming_bubble_margin_left" app:alignContent="stretch" app:alignItems="stretch" - app:flexWrap="wrap"> + app:flexWrap="wrap" + app:justifyContent="flex_end"> <include android:id="@+id/message_quote" layout="@layout/item_message_quote" android:visibility="gone" /> - <androidx.emoji2.widget.EmojiTextView - android:id="@+id/messageAuthor" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginBottom="4dp" - android:alpha="0.6" - android:textAlignment="viewStart" - android:textColor="@color/no_emphasis_text" - android:textIsSelectable="false" - android:textSize="12sp" - tools:text="Jane Doe" /> - - <LinearLayout - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:orientation="horizontal"> - - <ImageView - android:id="@+id/deckCardImage" - android:layout_width="24dp" - android:layout_height="24dp" - android:src="@drawable/baseline_assignment_24" /> - - <androidx.emoji2.widget.EmojiTextView - android:id="@+id/cardName" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginStart="10dp" - android:ellipsize="end" - android:lineSpacingMultiplier="1.2" - android:maxLines="2" - android:textAlignment="viewStart" - android:textIsSelectable="false" - android:textStyle="bold" - android:visibility="gone" - tools:text="Name of Website" - tools:visibility="visible" /> - </LinearLayout> - <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="horizontal"> + + <ImageView + android:id="@+id/deckCardImage" + android:layout_width="24dp" + android:layout_height="24dp" + android:src="@drawable/baseline_assignment_24" /> + + <androidx.emoji2.widget.EmojiTextView + android:id="@+id/cardName" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="8dp" + android:ellipsize="end" + android:lineSpacingMultiplier="1.2" + app:layout_flexGrow="1" + android:textIsSelectable="false" + android:textStyle="bold" + android:visibility="gone" + tools:text="Card Name" + tools:visibility="visible" /> + </LinearLayout> + <androidx.emoji2.widget.EmojiTextView android:id="@+id/cardDescription" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="end" android:lineSpacingMultiplier="1.2" - android:maxLines="2" + app:layout_flexGrow="1" android:textAlignment="viewStart" android:textIsSelectable="false" android:visibility="gone" - tools:text="Description of Website" + tools:text="Card Description" tools:visibility="visible" /> <TextView android:id="@id/messageTime" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:alpha="0.6" android:layout_gravity="end" + android:alpha="0.6" android:textColor="@color/no_emphasis_text" android:textIsSelectable="false" tools:text="12:38" /> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 22086cace..fb5464bcf 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -515,7 +515,7 @@ How to translate with transifex: <string name="typing_are_typing">are typing …</string> <string name="typing_1_other">and 1 other is typing …</string> <string name="typing_x_others">and %1$s others are typing …</string> - <string name="deck_card_description">%1$s in 2$s</string> + <string name="deck_card_description">%1$s in %2$s</string> <!-- Upload --> <string name="nc_add_file">Add to conversation</string> <string name="nc_upload_picture_from_cam">Take photo</string>