mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-21 17:29:32 +01:00
Fix multiselect to make in memory messages unselectable.
This commit is contained in:
committed by
Greyson Parrelli
parent
d20abec813
commit
e2c32c1172
@@ -36,6 +36,7 @@ import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.conversation.ConversationAdapterBridge
|
||||
import org.thoughtcrime.securesms.conversation.ConversationAdapterBridge.PulseRequest
|
||||
import org.thoughtcrime.securesms.conversation.v2.items.InteractiveConversationElement
|
||||
import org.thoughtcrime.securesms.database.model.InMemoryMessageRecord
|
||||
import org.thoughtcrime.securesms.util.ThemeUtil
|
||||
import org.thoughtcrime.securesms.util.ViewUtil
|
||||
import org.thoughtcrime.securesms.wallpaper.ChatWallpaper
|
||||
@@ -566,7 +567,7 @@ class MultiselectItemDecoration(
|
||||
}
|
||||
|
||||
private fun RecyclerView.getMultiselectableChildren(): Sequence<Multiselectable> {
|
||||
return children.map { getChildViewHolder(it) }.filterIsInstance<Multiselectable>()
|
||||
return children.map { getChildViewHolder(it) }.filterIsInstance<Multiselectable>().filter { child -> child.conversationMessage.messageRecord !is InMemoryMessageRecord }
|
||||
}
|
||||
|
||||
private fun RecyclerView.getInteractableChildren(): Sequence<InteractiveConversationElement> {
|
||||
@@ -576,6 +577,8 @@ class MultiselectItemDecoration(
|
||||
private fun resolveMultiselectable(parent: RecyclerView, child: View): Multiselectable? {
|
||||
val multiselectable = parent.getChildViewHolder(child) as? Multiselectable
|
||||
|
||||
if (multiselectable?.conversationMessage?.messageRecord?.isInMemoryMessageRecord == true) { return null }
|
||||
|
||||
return multiselectable ?: child as? Multiselectable
|
||||
}
|
||||
|
||||
|
||||
@@ -306,6 +306,8 @@ class ConversationAdapterV2(
|
||||
}
|
||||
|
||||
fun toggleSelection(multiselectPart: MultiselectPart) {
|
||||
if (multiselectPart.getMessageRecord().isInMemoryMessageRecord) { return }
|
||||
|
||||
if (multiselectPart in _selected) {
|
||||
_selected.remove(multiselectPart)
|
||||
} else {
|
||||
|
||||
@@ -3220,7 +3220,9 @@ class ConversationFragment :
|
||||
|
||||
override fun onItemLongClick(itemView: View, item: MultiselectPart) {
|
||||
Log.d(TAG, "onItemLongClick")
|
||||
if (actionMode != null) return
|
||||
if (actionMode != null) { return }
|
||||
|
||||
if (item.getMessageRecord().isInMemoryMessageRecord) { return }
|
||||
|
||||
val messageRecord = item.getMessageRecord()
|
||||
val recipient = viewModel.recipientSnapshot ?: return
|
||||
|
||||
Reference in New Issue
Block a user