Cancel search when making reply/edit/forward action on a message

This commit is contained in:
Sylvain Berfini 2026-01-06 16:20:00 +01:00
parent 9151898a4d
commit d90861b5f3
2 changed files with 11 additions and 5 deletions

View file

@ -470,9 +470,9 @@ open class ConversationFragment : SlidingPaneChildFragment() {
layoutManager.stackFromEnd = true layoutManager.stackFromEnd = true
binding.eventsList.layoutManager = layoutManager binding.eventsList.layoutManager = layoutManager
binding.sendArea.participants.participants.setHasFixedSize(true) binding.sendArea.participants.participantsList.setHasFixedSize(true)
val participantsLayoutManager = LinearLayoutManager(requireContext()) val participantsLayoutManager = LinearLayoutManager(requireContext())
binding.sendArea.participants.participants.layoutManager = participantsLayoutManager binding.sendArea.participants.participantsList.layoutManager = participantsLayoutManager
val callbacks = RecyclerViewSwipeUtilsCallback( val callbacks = RecyclerViewSwipeUtilsCallback(
R.drawable.reply, R.drawable.reply,
@ -494,6 +494,7 @@ open class ConversationFragment : SlidingPaneChildFragment() {
if (chatMessageModel.hasBeenRetracted.value == true) { // Don't allow to reply to retracted messages if (chatMessageModel.hasBeenRetracted.value == true) { // Don't allow to reply to retracted messages
// TODO: notify user? // TODO: notify user?
} else { } else {
viewModel.closeSearchBar()
sendMessageViewModel.replyToMessage(chatMessageModel) sendMessageViewModel.replyToMessage(chatMessageModel)
// Open keyboard & focus edit text // Open keyboard & focus edit text
binding.sendArea.messageToSend.showKeyboard() binding.sendArea.messageToSend.showKeyboard()
@ -775,8 +776,8 @@ open class ConversationFragment : SlidingPaneChildFragment() {
sendMessageViewModel.participants.observe(viewLifecycleOwner) { sendMessageViewModel.participants.observe(viewLifecycleOwner) {
participantsAdapter.submitList(it) participantsAdapter.submitList(it)
if (binding.sendArea.participants.participants.adapter != participantsAdapter) { if (binding.sendArea.participants.participantsList.adapter != participantsAdapter) {
binding.sendArea.participants.participants.adapter = participantsAdapter binding.sendArea.participants.participantsList.adapter = participantsAdapter
} }
} }
@ -896,6 +897,7 @@ open class ConversationFragment : SlidingPaneChildFragment() {
it.consume { it.consume {
val model = messageLongPressViewModel.messageModel.value val model = messageLongPressViewModel.messageModel.value
if (model != null) { if (model != null) {
viewModel.closeSearchBar()
sendMessageViewModel.editMessage(model) sendMessageViewModel.editMessage(model)
// Open keyboard & focus edit text // Open keyboard & focus edit text
@ -912,6 +914,7 @@ open class ConversationFragment : SlidingPaneChildFragment() {
it.consume { it.consume {
val model = messageLongPressViewModel.messageModel.value val model = messageLongPressViewModel.messageModel.value
if (model != null) { if (model != null) {
viewModel.closeSearchBar()
sendMessageViewModel.replyToMessage(model) sendMessageViewModel.replyToMessage(model)
// Open keyboard & focus edit text // Open keyboard & focus edit text
binding.sendArea.messageToSend.showKeyboard() binding.sendArea.messageToSend.showKeyboard()
@ -938,6 +941,9 @@ open class ConversationFragment : SlidingPaneChildFragment() {
it.consume { it.consume {
val model = messageLongPressViewModel.messageModel.value val model = messageLongPressViewModel.messageModel.value
if (model != null) { if (model != null) {
viewModel.closeSearchBar()
sendMessageViewModel.cancelReply()
// Remove observer before setting the message to forward // Remove observer before setting the message to forward
// as we don't want to forward it in this chat room // as we don't want to forward it in this chat room
sharedViewModel.messageToForwardEvent.removeObservers(viewLifecycleOwner) sharedViewModel.messageToForwardEvent.removeObservers(viewLifecycleOwner)

View file

@ -36,7 +36,7 @@
app:layout_constraintStart_toStartOf="parent" /> app:layout_constraintStart_toStartOf="parent" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/participants" android:id="@+id/participants_list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/chat_room_participants_list_max_height" android:layout_height="@dimen/chat_room_participants_list_max_height"
android:layout_marginTop="5dp" android:layout_marginTop="5dp"