From f837caad8b1fbe3a4e1cd93436d63d5e3574f5f2 Mon Sep 17 00:00:00 2001 From: rapterjet2004 Date: Fri, 4 Apr 2025 11:12:38 -0500 Subject: [PATCH] Refactored Signed-off-by: rapterjet2004 --- .../talk/adapters/items/MessageResultItem.kt | 4 ++-- .../ConversationsListActivity.kt | 18 +++++++++++------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/MessageResultItem.kt b/app/src/main/java/com/nextcloud/talk/adapters/items/MessageResultItem.kt index 6f1c1dc77..43c3b7da7 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/MessageResultItem.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/items/MessageResultItem.kt @@ -25,11 +25,11 @@ import eu.davidea.flexibleadapter.items.IFlexible import eu.davidea.flexibleadapter.items.ISectionable import eu.davidea.viewholders.FlexibleViewHolder -data class MessageResultItem constructor( +data class MessageResultItem( private val context: Context, private val currentUser: User, val messageEntry: SearchMessageEntry, - private val showHeader: Boolean = false, + var showHeader: Boolean = false, private val viewThemeUtils: ViewThemeUtils ) : AbstractFlexibleItem(), diff --git a/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt b/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt index 62a840bc7..48d60e074 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt @@ -411,7 +411,7 @@ class ConversationsListActivity : is RoomUiState.Success -> { val conversation = state.conversation val bundle = Bundle() - bundle.putString(BundleKeys.KEY_ROOM_TOKEN, conversation?.token) + bundle.putString(KEY_ROOM_TOKEN, conversation?.token) val chatIntent = Intent(context, ChatActivity::class.java) chatIntent.putExtras(bundle) chatIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) @@ -827,7 +827,7 @@ class ConversationsListActivity : if (!hasFilterEnabled()) filterableConversationItems = searchableConversationItems adapter!!.updateDataSet(filterableConversationItems, false) adapter!!.showAllHeaders() - binding.swipeRefreshLayoutView?.isEnabled = false + binding.swipeRefreshLayoutView.isEnabled = false searchBehaviorSubject.onNext(true) return true } @@ -2021,14 +2021,12 @@ class ConversationsListActivity : if (entries.isNotEmpty()) { val adapterItems: MutableList> = ArrayList(entries.size + 1) for (i in entries.indices) { - val showHeader = i == 0 adapterItems.add( MessageResultItem( context, currentUser!!, entries[i], - showHeader, - viewThemeUtils + viewThemeUtils = viewThemeUtils ) ) } @@ -2036,8 +2034,14 @@ class ConversationsListActivity : adapterItems.add(LoadMoreResultsItem) } - @SuppressLint() - adapter?.addItems(-1, adapterItems) + + adapter?.addItems(Int.MAX_VALUE, adapterItems) + val pos = adapter?.currentItems?.indexOfFirst { it is MessageResultItem } + val item = (adapter?.currentItems?.get(pos!!) as MessageResultItem).apply { showHeader = true } + adapter?.addItem(pos!!, item) + adapter?.notifyItemInserted(pos!!) + adapter?.removeItem(pos!! - 1) + adapter?.notifyItemRemoved(pos!! - 1) binding.recyclerView.scrollToPosition(0) } }