From f7fac17e2aa0980ab408d74c8497ba0631960f18 Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Mon, 7 Jul 2025 10:43:09 +0200 Subject: [PATCH] fix that contact in search is clickable A contact (so not a conversation yet!) had the VIEW_TYPE 2131558677, but 2131558687 was expected to identify the type, see FlexibleViewType.kt The checks in onItemClick are replaced to directly change the type via kotlin "is" method. best solution for future: FlexibleAdapter should be removed!-> replace with Compose! Signed-off-by: Marcel Hibbe --- .../talk/adapters/items/ContactItem.kt | 1 - .../adapters/items/FlexibleItemViewType.kt | 1 - .../ConversationsListActivity.kt | 21 ++++++++----------- .../messagesearch/MessageSearchActivity.kt | 9 ++++---- 4 files changed, 13 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/ContactItem.kt b/app/src/main/java/com/nextcloud/talk/adapters/items/ContactItem.kt index 4f726ca92..b97f9cbf3 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/ContactItem.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/items/ContactItem.kt @@ -194,7 +194,6 @@ class ContactItem( } companion object { - const val VIEW_TYPE = FlexibleItemViewType.CONTACT_ITEM private const val FULLY_OPAQUE: Float = 1.0f private const val SEMI_TRANSPARENT: Float = 0.38f } diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/FlexibleItemViewType.kt b/app/src/main/java/com/nextcloud/talk/adapters/items/FlexibleItemViewType.kt index 656cd8d90..eaf99e297 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/FlexibleItemViewType.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/items/FlexibleItemViewType.kt @@ -14,5 +14,4 @@ object FlexibleItemViewType { const val POLL_RESULT_HEADER_ITEM: Int = 1120391234 const val POLL_RESULT_VOTER_ITEM: Int = 1120391235 const val POLL_RESULT_VOTERS_OVERVIEW_ITEM: Int = 1120391236 - const val CONTACT_ITEM: Int = 2131558687 } 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 3d87f1c12..201e7cc81 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt @@ -160,7 +160,6 @@ import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode import retrofit2.HttpException import java.io.File -import java.util.Objects import java.util.concurrent.TimeUnit import javax.inject.Inject @@ -1447,10 +1446,9 @@ class ConversationsListActivity : override fun onItemClick(view: View, position: Int): Boolean { val item = adapter?.getItem(position) if (item != null) { - when (item.itemViewType) { - MessageResultItem.VIEW_TYPE -> { - val messageItem: MessageResultItem = item as MessageResultItem - val token = messageItem.messageEntry.conversationToken + when (item) { + is MessageResultItem -> { + val token = item.messageEntry.conversationToken val conversationName = ( conversationItems.first { (it is ConversationItem) && it.model.token == token @@ -1464,27 +1462,26 @@ class ConversationsListActivity : bundle.putString(BundleKeys.KEY_CREDENTIALS, credentials!!) bundle.putString(BundleKeys.KEY_BASE_URL, currentUser!!.baseUrl) bundle.putString(KEY_ROOM_TOKEN, token) - bundle.putString(BundleKeys.KEY_MESSAGE_ID, messageItem.messageEntry.messageId) + bundle.putString(BundleKeys.KEY_MESSAGE_ID, item.messageEntry.messageId) bundle.putString(BundleKeys.KEY_CONVERSATION_NAME, conversationName) ContextChatCompose(bundle).GetDialogView(shouldDismiss, context) } } } - LoadMoreResultsItem.VIEW_TYPE -> { + is LoadMoreResultsItem -> { loadMoreMessages() } - ConversationItem.VIEW_TYPE -> { - handleConversation((Objects.requireNonNull(item) as ConversationItem).model) + is ConversationItem -> { + handleConversation(item.model) } - ContactItem.VIEW_TYPE -> { - val contact = item as ContactItem + is ContactItem -> { contactsViewModel.createRoom( ROOM_TYPE_ONE_ONE, null, - contact.model.actorId!!, + item.model.actorId!!, null ) } diff --git a/app/src/main/java/com/nextcloud/talk/messagesearch/MessageSearchActivity.kt b/app/src/main/java/com/nextcloud/talk/messagesearch/MessageSearchActivity.kt index f32e54193..64462976a 100644 --- a/app/src/main/java/com/nextcloud/talk/messagesearch/MessageSearchActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/messagesearch/MessageSearchActivity.kt @@ -148,13 +148,12 @@ class MessageSearchActivity : BaseActivity() { adapter!!.addListener(object : FlexibleAdapter.OnItemClickListener { override fun onItemClick(view: View?, position: Int): Boolean { val item = adapter!!.getItem(position) - when (item?.itemViewType) { - LoadMoreResultsItem.VIEW_TYPE -> { + when (item) { + is LoadMoreResultsItem -> { viewModel.loadMore() } - MessageResultItem.VIEW_TYPE -> { - val messageItem = item as MessageResultItem - viewModel.selectMessage(messageItem.messageEntry) + is MessageResultItem -> { + viewModel.selectMessage(item.messageEntry) } } return false