Merge pull request #3908 from nextcloud/show_description_in_open_conversation_list

Show description in open conversation list
This commit is contained in:
Marcel Hibbe 2024-05-16 12:17:41 +02:00 committed by GitHub
commit dff33fdb87
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 55 additions and 19 deletions

View File

@ -182,6 +182,7 @@ import com.nextcloud.talk.ui.recyclerview.MessageSwipeCallback
import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.AudioUtils import com.nextcloud.talk.utils.AudioUtils
import com.nextcloud.talk.utils.CapabilitiesUtil import com.nextcloud.talk.utils.CapabilitiesUtil
import com.nextcloud.talk.utils.CharPolicy
import com.nextcloud.talk.utils.ContactUtils import com.nextcloud.talk.utils.ContactUtils
import com.nextcloud.talk.utils.ConversationUtils import com.nextcloud.talk.utils.ConversationUtils
import com.nextcloud.talk.utils.DateConstants import com.nextcloud.talk.utils.DateConstants
@ -190,7 +191,6 @@ import com.nextcloud.talk.utils.DisplayUtils
import com.nextcloud.talk.utils.FileUtils import com.nextcloud.talk.utils.FileUtils
import com.nextcloud.talk.utils.FileViewerUtils import com.nextcloud.talk.utils.FileViewerUtils
import com.nextcloud.talk.utils.ImageEmojiEditText import com.nextcloud.talk.utils.ImageEmojiEditText
import com.nextcloud.talk.utils.CharPolicy
import com.nextcloud.talk.utils.Mimetype import com.nextcloud.talk.utils.Mimetype
import com.nextcloud.talk.utils.NotificationUtils import com.nextcloud.talk.utils.NotificationUtils
import com.nextcloud.talk.utils.ParticipantPermissions import com.nextcloud.talk.utils.ParticipantPermissions
@ -3474,24 +3474,32 @@ class ChatActivity :
"" ""
} }
val statusMessageView = binding.chatToolbar.findViewById<TextView>(R.id.chat_toolbar_status_message)
if (currentConversation?.type == ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL) { if (currentConversation?.type == ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL) {
var statusMessage = "" var statusMessage = ""
if (currentConversation?.statusIcon != null) { if (currentConversation?.statusIcon != null) {
statusMessage += currentConversation?.statusIcon statusMessage += currentConversation?.statusIcon
} }
if (currentConversation?.statusMessage != null) { if (currentConversation?.statusMessage != null) {
statusMessage += currentConversation?.statusMessage statusMessage += currentConversation?.statusMessage
} }
statusMessageViewContents(statusMessage)
if (statusMessage.isNotEmpty()) {
viewThemeUtils.platform.colorTextView(statusMessageView, ColorRole.ON_SURFACE)
statusMessageView.text = statusMessage
statusMessageView.visibility = View.VISIBLE
} else { } else {
statusMessageView.visibility = View.GONE if (currentConversation?.type == ConversationType.ROOM_GROUP_CALL ||
currentConversation?.type == ConversationType.ROOM_PUBLIC_CALL
) {
var descriptionMessage = ""
descriptionMessage += currentConversation?.description
statusMessageViewContents(descriptionMessage)
} }
}
}
private fun statusMessageViewContents(statusMessageContent: String) {
val statusMessageView = binding.chatToolbar.findViewById<TextView>(R.id.chat_toolbar_status_message)
if (statusMessageContent.isNotEmpty()) {
viewThemeUtils.platform.colorTextView(statusMessageView, ColorRole.ON_SURFACE)
statusMessageView.text = statusMessageContent
statusMessageView.visibility = View.VISIBLE
} else { } else {
statusMessageView.visibility = View.GONE statusMessageView.visibility = View.GONE
} }

View File

@ -7,7 +7,9 @@
package com.nextcloud.talk.openconversations.adapters package com.nextcloud.talk.openconversations.adapters
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.RelativeLayout
import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
@ -34,8 +36,17 @@ class OpenConversationsAdapter(val user: User, private val onClick: (OpenConvers
} }
fun bindItem(conversation: OpenConversation) { fun bindItem(conversation: OpenConversation) {
val nameTextLayoutParams: RelativeLayout.LayoutParams = itemBinding.nameText.layoutParams as
RelativeLayout.LayoutParams
currentConversation = conversation currentConversation = conversation
itemBinding.nameText.text = conversation.displayName itemBinding.nameText.text = conversation.displayName
if (conversation.description == "") {
itemBinding.descriptionText.visibility = View.GONE
nameTextLayoutParams.addRule(RelativeLayout.CENTER_VERTICAL)
} else {
itemBinding.descriptionText.text = conversation.description
}
// load avatar from server when https://github.com/nextcloud/spreed/issues/9600 is solved // load avatar from server when https://github.com/nextcloud/spreed/issues/9600 is solved
// itemBinding.avatarView.loadUserAvatar(user, conversation.displayName, true, false) // itemBinding.avatarView.loadUserAvatar(user, conversation.displayName, true, false)

View File

@ -9,5 +9,6 @@ package com.nextcloud.talk.openconversations.data
data class OpenConversation( data class OpenConversation(
var roomId: String, var roomId: String,
var roomToken: String, var roomToken: String,
var displayName: String var displayName: String,
var description: String?
) )

View File

@ -34,7 +34,8 @@ class OpenConversationsRepositoryImpl(private val ncApi: NcApi, currentUserProvi
OpenConversation( OpenConversation(
conversation.roomId!!, conversation.roomId!!,
conversation.token!!, conversation.token!!,
conversation.name!! conversation.name!!,
conversation.description ?: ""
) )
} }
) )

View File

@ -21,18 +21,32 @@
android:id="@+id/name_text" android:id="@+id/name_text"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toEndOf="@id/avatar_view" android:layout_toEndOf="@id/avatar_view"
android:layout_marginTop="@dimen/standard_quarter_margin"
android:ellipsize="end" android:ellipsize="end"
android:lines="1" android:lines="1"
android:textAlignment="viewStart" android:textAlignment="viewStart"
android:textAppearance="@style/ListItem" android:textAppearance="@style/ListItem"
tools:text="Jane Doe" /> tools:text="Jane Doe" />
<androidx.emoji2.widget.EmojiTextView
android:id="@+id/description_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toEndOf="@id/avatar_view"
android:layout_below= "@id/name_text"
android:paddingTop="@dimen/standard_quarter_margin"
android:ellipsize="end"
android:lines="1"
android:textAlignment="viewStart"
android:textColor="@color/low_emphasis_text"
android:textSize="13sp"
tools:text="Jane Doe" />
<ImageView <ImageView
android:id="@+id/avatar_view" android:id="@+id/avatar_view"
android:layout_width="@dimen/avatar_size" android:layout_width="@dimen/avatar_size_open_conversation_list"
android:layout_height="@dimen/avatar_size" android:layout_height="@dimen/avatar_size_open_conversation_list"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_marginEnd="@dimen/standard_margin" android:layout_marginEnd="@dimen/standard_margin"
android:contentDescription="@string/avatar" /> android:contentDescription="@string/avatar" />

View File

@ -23,6 +23,7 @@
<dimen name="avatar_size">40dp</dimen> <dimen name="avatar_size">40dp</dimen>
<dimen name="avatar_size_app_bar">30dp</dimen> <dimen name="avatar_size_app_bar">30dp</dimen>
<dimen name="avatar_size_big">96dp</dimen> <dimen name="avatar_size_big">96dp</dimen>
<dimen name="avatar_size_open_conversation_list">52dp</dimen>
<dimen name="chat_text_size">14sp</dimen> <dimen name="chat_text_size">14sp</dimen>
<dimen name="message_bubble_corners_radius">20dp</dimen> <dimen name="message_bubble_corners_radius">20dp</dimen>