mirror of
https://github.com/nextcloud/talk-android
synced 2025-03-06 06:15:12 +00:00
Modify Adapter and ListOpenConversationsActivity
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
parent
b769a024c4
commit
5b8b3bb027
@ -21,15 +21,15 @@ import com.nextcloud.talk.api.NcApi
|
||||
import com.nextcloud.talk.application.NextcloudTalkApplication
|
||||
import com.nextcloud.talk.chat.ChatActivity
|
||||
import com.nextcloud.talk.databinding.ActivityOpenConversationsBinding
|
||||
import com.nextcloud.talk.models.json.conversations.Conversation
|
||||
import com.nextcloud.talk.openconversations.adapters.OpenConversationsAdapter
|
||||
import com.nextcloud.talk.openconversations.data.OpenConversation
|
||||
import com.nextcloud.talk.openconversations.viewmodels.OpenConversationsViewModel
|
||||
import com.nextcloud.talk.utils.bundle.BundleKeys
|
||||
import com.vanniktech.ui.showKeyboardAndFocus
|
||||
import javax.inject.Inject
|
||||
|
||||
@AutoInjector(NextcloudTalkApplication::class)
|
||||
class ListOpenConversationsActivity : BaseActivity() {
|
||||
class ListOpenConversationsActivity : BaseActivity() {
|
||||
|
||||
private lateinit var binding: ActivityOpenConversationsBinding
|
||||
|
||||
@ -62,7 +62,7 @@ class ListOpenConversationsActivity : BaseActivity() {
|
||||
|
||||
val user = currentUserProvider.currentUser.blockingGet()
|
||||
|
||||
adapter = OpenConversationsAdapter(user) { conversation -> adapterOnClick(conversation) }
|
||||
adapter = OpenConversationsAdapter(user, viewThemeUtils) { conversation -> adapterOnClick(conversation) }
|
||||
binding.openConversationsRecyclerView.adapter = adapter
|
||||
binding.searchOpenConversations.setOnClickListener {
|
||||
searching = !searching
|
||||
@ -86,9 +86,9 @@ class ListOpenConversationsActivity : BaseActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun adapterOnClick(conversation: OpenConversation) {
|
||||
private fun adapterOnClick(conversation: Conversation) {
|
||||
val bundle = Bundle()
|
||||
bundle.putString(BundleKeys.KEY_ROOM_TOKEN, conversation.roomToken)
|
||||
bundle.putString(BundleKeys.KEY_ROOM_TOKEN, conversation.token)
|
||||
|
||||
val chatIntent = Intent(context, ChatActivity::class.java)
|
||||
chatIntent.putExtras(bundle)
|
||||
@ -143,3 +143,6 @@ class ListOpenConversationsActivity : BaseActivity() {
|
||||
viewThemeUtils.material.themeToolbar(binding.openConversationsToolbar)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -13,21 +13,24 @@ import android.widget.RelativeLayout
|
||||
import androidx.recyclerview.widget.DiffUtil
|
||||
import androidx.recyclerview.widget.ListAdapter
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.nextcloud.talk.R
|
||||
import com.nextcloud.talk.data.user.model.User
|
||||
import com.nextcloud.talk.databinding.RvItemOpenConversationBinding
|
||||
import com.nextcloud.talk.extensions.loadUserAvatar
|
||||
import com.nextcloud.talk.openconversations.data.OpenConversation
|
||||
import com.nextcloud.talk.extensions.loadConversationAvatar
|
||||
import com.nextcloud.talk.models.domain.ConversationModel
|
||||
import com.nextcloud.talk.models.json.conversations.Conversation
|
||||
import com.nextcloud.talk.ui.theme.ViewThemeUtils
|
||||
|
||||
class OpenConversationsAdapter(val user: User, private val onClick: (OpenConversation) -> Unit) :
|
||||
ListAdapter<OpenConversation, OpenConversationsAdapter.OpenConversationsViewHolder>(ConversationsCallback) {
|
||||
private var originalList: List<OpenConversation> = emptyList()
|
||||
class OpenConversationsAdapter(val user: User,
|
||||
val viewThemeUtils: ViewThemeUtils,
|
||||
private val onClick: (Conversation) -> Unit) :
|
||||
ListAdapter<Conversation, OpenConversationsAdapter.OpenConversationsViewHolder>(ConversationsCallback) {
|
||||
private var originalList: List<Conversation> = emptyList()
|
||||
private var isFiltering = false
|
||||
|
||||
inner class OpenConversationsViewHolder(val itemBinding: RvItemOpenConversationBinding) :
|
||||
RecyclerView.ViewHolder(itemBinding.root) {
|
||||
|
||||
var currentConversation: OpenConversation? = null
|
||||
var currentConversation: Conversation? = null
|
||||
|
||||
init {
|
||||
itemBinding.root.setOnClickListener {
|
||||
@ -37,11 +40,11 @@ class OpenConversationsAdapter(val user: User, private val onClick: (OpenConvers
|
||||
}
|
||||
}
|
||||
|
||||
fun bindItem(conversation: OpenConversation) {
|
||||
fun bindItem(conversation: Conversation) {
|
||||
val nameTextLayoutParams: RelativeLayout.LayoutParams = itemBinding.nameText.layoutParams as
|
||||
RelativeLayout.LayoutParams
|
||||
|
||||
currentConversation = conversation
|
||||
val currentConversationModel = ConversationModel.mapToConversationModel(conversation, user)
|
||||
itemBinding.nameText.text = conversation.displayName
|
||||
if (conversation.description == "") {
|
||||
itemBinding.descriptionText.visibility = View.GONE
|
||||
@ -50,9 +53,15 @@ class OpenConversationsAdapter(val user: User, private val onClick: (OpenConvers
|
||||
itemBinding.descriptionText.text = conversation.description
|
||||
}
|
||||
|
||||
|
||||
// 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(R.drawable.ic_circular_group)
|
||||
itemBinding.avatarView.loadConversationAvatar(
|
||||
user,
|
||||
currentConversationModel,
|
||||
false,
|
||||
viewThemeUtils
|
||||
)
|
||||
//itemBinding.avatarView.loadUserAvatar(R.drawable.ic_circular_group)
|
||||
}
|
||||
}
|
||||
|
||||
@ -79,7 +88,7 @@ class OpenConversationsAdapter(val user: User, private val onClick: (OpenConvers
|
||||
}
|
||||
|
||||
isFiltering = true
|
||||
val newList = mutableListOf<OpenConversation>()
|
||||
val newList = mutableListOf<Conversation>()
|
||||
for (conversation in originalList) {
|
||||
if (conversation.displayName.contains(text, true) || conversation.description!!.contains(text, true)) {
|
||||
newList.add(conversation)
|
||||
@ -92,8 +101,8 @@ class OpenConversationsAdapter(val user: User, private val onClick: (OpenConvers
|
||||
}
|
||||
|
||||
override fun onCurrentListChanged(
|
||||
previousList: MutableList<OpenConversation>,
|
||||
currentList: MutableList<OpenConversation>
|
||||
previousList: MutableList<Conversation>,
|
||||
currentList: MutableList<Conversation>
|
||||
) {
|
||||
if (!isFiltering) {
|
||||
originalList = currentList
|
||||
@ -102,12 +111,12 @@ class OpenConversationsAdapter(val user: User, private val onClick: (OpenConvers
|
||||
}
|
||||
}
|
||||
|
||||
object ConversationsCallback : DiffUtil.ItemCallback<OpenConversation>() {
|
||||
override fun areItemsTheSame(oldItem: OpenConversation, newItem: OpenConversation): Boolean {
|
||||
object ConversationsCallback : DiffUtil.ItemCallback<Conversation>() {
|
||||
override fun areItemsTheSame(oldItem: Conversation, newItem: Conversation): Boolean {
|
||||
return oldItem == newItem
|
||||
}
|
||||
|
||||
override fun areContentsTheSame(oldItem: OpenConversation, newItem: OpenConversation): Boolean {
|
||||
return oldItem.roomToken == newItem.roomToken
|
||||
override fun areContentsTheSame(oldItem: Conversation, newItem: Conversation): Boolean {
|
||||
return oldItem.token == newItem.token
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user