Merge pull request #5031 from nextcloud/backport/5024/stable-21.1

[stable-21.1] simplify how search results are shown
This commit is contained in:
Marcel Hibbe 2025-06-04 07:22:03 +00:00 committed by GitHub
commit 44d5946c31
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 7 additions and 32 deletions

View File

@ -307,12 +307,7 @@ class ChatActivity :
runBlocking { runBlocking {
val id = intent?.getStringExtra(MessageSearchActivity.RESULT_KEY_MESSAGE_ID) val id = intent?.getStringExtra(MessageSearchActivity.RESULT_KEY_MESSAGE_ID)
id?.let { id?.let {
val isSaved = chatViewModel.isMessageSaved(id.toLong()) startContextChatWindowForMessage(id)
if (isSaved) {
onMessageSearchResult(intent)
} else {
startContextChatWindowForMessage(id)
}
} }
} }
} }
@ -2297,13 +2292,6 @@ class ChatActivity :
} }
} }
private fun onMessageSearchResult(intent: Intent?) {
val messageId = intent?.getStringExtra(MessageSearchActivity.RESULT_KEY_MESSAGE_ID)
messageId?.let { id ->
scrollToAndCenterMessageWithId(id)
}
}
private fun executeIfResultOk(result: ActivityResult, onResult: (intent: Intent?) -> Unit) { private fun executeIfResultOk(result: ActivityResult, onResult: (intent: Intent?) -> Unit) {
if (result.resultCode == Activity.RESULT_OK) { if (result.resultCode == Activity.RESULT_OK) {
onResult(result.data) onResult(result.data)
@ -2319,7 +2307,7 @@ class ChatActivity :
if (position != null && position >= 0) { if (position != null && position >= 0) {
binding.messagesListView.scrollToPosition(position) binding.messagesListView.scrollToPosition(position)
} else { } else {
startContextChatWindowForMessage(messageId) Log.d(TAG, "message $messageId that should be scrolled to was not found (scrollToMessageWithId)")
} }
} }
@ -2332,10 +2320,12 @@ class ChatActivity :
binding.messagesListView.height / 2 binding.messagesListView.height / 2
) )
} else { } else {
startContextChatWindowForMessage(messageId) Log.d(
TAG,
"message $messageId that should be scrolled " +
"to was not found (scrollToAndCenterMessageWithId)"
)
} }
} ?: run {
startContextChatWindowForMessage(messageId)
} }
} }

View File

@ -76,8 +76,6 @@ interface ChatMessageRepository : LifecycleAwareManager {
*/ */
suspend fun getMessage(messageId: Long, bundle: Bundle): Flow<ChatMessage> suspend fun getMessage(messageId: Long, bundle: Bundle): Flow<ChatMessage>
suspend fun checkIfMessageIsSaved(messageId: Long): Boolean
@Suppress("LongParameterList") @Suppress("LongParameterList")
suspend fun sendChatMessage( suspend fun sendChatMessage(
credentials: String, credentials: String,

View File

@ -475,15 +475,6 @@ class OfflineFirstChatRepository @Inject constructor(
.map(ChatMessageEntity::asModel) .map(ChatMessageEntity::asModel)
} }
override suspend fun checkIfMessageIsSaved(messageId: Long): Boolean {
try {
chatDao.getChatMessageForConversation(internalConversationId, messageId)
return true
} catch (_: Exception) {
return false
}
}
@Suppress("UNCHECKED_CAST", "MagicNumber", "Detekt.TooGenericExceptionCaught") @Suppress("UNCHECKED_CAST", "MagicNumber", "Detekt.TooGenericExceptionCaught")
private fun getMessagesFromServer(bundle: Bundle): Pair<Int, List<ChatMessageJson>>? { private fun getMessagesFromServer(bundle: Bundle): Pair<Int, List<ChatMessageJson>>? {
val fieldMap = bundle.getSerializable(BundleKeys.KEY_FIELD_MAP) as HashMap<String, Int> val fieldMap = bundle.getSerializable(BundleKeys.KEY_FIELD_MAP) as HashMap<String, Int>

View File

@ -285,10 +285,6 @@ class ChatViewModel @Inject constructor(
conversationRepository.getRoom(token) conversationRepository.getRoom(token)
} }
suspend fun isMessageSaved(messageId: Long): Boolean {
return chatRepository.checkIfMessageIsSaved(messageId)
}
fun getCapabilities(user: User, token: String, conversationModel: ConversationModel) { fun getCapabilities(user: User, token: String, conversationModel: ConversationModel) {
Log.d(TAG, "Remote server ${conversationModel.remoteServer}") Log.d(TAG, "Remote server ${conversationModel.remoteServer}")
if (conversationModel.remoteServer.isNullOrEmpty()) { if (conversationModel.remoteServer.isNullOrEmpty()) {