mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-23 12:38:33 +00:00
Listen for recipient name changes in conversation item.
This commit is contained in:
@@ -41,6 +41,8 @@ import org.thoughtcrime.securesms.database.model.MessageRecord
|
|||||||
import org.thoughtcrime.securesms.database.model.MmsMessageRecord
|
import org.thoughtcrime.securesms.database.model.MmsMessageRecord
|
||||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||||
|
import org.thoughtcrime.securesms.recipients.Recipient
|
||||||
|
import org.thoughtcrime.securesms.recipients.RecipientForeverObserver
|
||||||
import org.thoughtcrime.securesms.recipients.RecipientId
|
import org.thoughtcrime.securesms.recipients.RecipientId
|
||||||
import org.thoughtcrime.securesms.util.InterceptableLongClickCopyLinkSpan
|
import org.thoughtcrime.securesms.util.InterceptableLongClickCopyLinkSpan
|
||||||
import org.thoughtcrime.securesms.util.LongClickMovementMethod
|
import org.thoughtcrime.securesms.util.LongClickMovementMethod
|
||||||
@@ -66,7 +68,7 @@ open class V2ConversationItemTextOnlyViewHolder<Model : MappingModel<Model>>(
|
|||||||
private val binding: V2ConversationItemTextOnlyBindingBridge,
|
private val binding: V2ConversationItemTextOnlyBindingBridge,
|
||||||
private val conversationContext: V2ConversationContext,
|
private val conversationContext: V2ConversationContext,
|
||||||
footerDelegate: V2FooterPositionDelegate = V2FooterPositionDelegate(binding)
|
footerDelegate: V2FooterPositionDelegate = V2FooterPositionDelegate(binding)
|
||||||
) : V2ConversationItemViewHolder<Model>(binding.root, conversationContext), Multiselectable, InteractiveConversationElement {
|
) : V2ConversationItemViewHolder<Model>(binding.root, conversationContext), Multiselectable, InteractiveConversationElement, RecipientForeverObserver {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val STYLE_FACTORY = SearchUtil.StyleFactory { arrayOf<CharacterStyle>(BackgroundColorSpan(Color.YELLOW), ForegroundColorSpan(Color.BLACK)) }
|
private val STYLE_FACTORY = SearchUtil.StyleFactory { arrayOf<CharacterStyle>(BackgroundColorSpan(Color.YELLOW), ForegroundColorSpan(Color.BLACK)) }
|
||||||
@@ -189,7 +191,15 @@ open class V2ConversationItemTextOnlyViewHolder<Model : MappingModel<Model>>(
|
|||||||
}
|
}
|
||||||
|
|
||||||
check(model is ConversationMessageElement)
|
check(model is ConversationMessageElement)
|
||||||
|
|
||||||
|
if (this::conversationMessage.isInitialized) {
|
||||||
|
conversationMessage.messageRecord.fromRecipient.live().removeForeverObserver(this)
|
||||||
|
}
|
||||||
|
|
||||||
conversationMessage = model.conversationMessage
|
conversationMessage = model.conversationMessage
|
||||||
|
if (conversationMessage.threadRecipient.isGroup) {
|
||||||
|
conversationMessage.messageRecord.fromRecipient.live().observeForever(this)
|
||||||
|
}
|
||||||
|
|
||||||
shape = shapeDelegate.setMessageShape(
|
shape = shapeDelegate.setMessageShape(
|
||||||
currentMessage = conversationMessage.messageRecord,
|
currentMessage = conversationMessage.messageRecord,
|
||||||
@@ -765,4 +775,8 @@ open class V2ConversationItemTextOnlyViewHolder<Model : MappingModel<Model>>(
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onRecipientChanged(recipient: Recipient) {
|
||||||
|
presentSender()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user