Handle click on encryption message
This commit is contained in:
parent
5bfa67b442
commit
7fe662598b
|
@ -23,6 +23,7 @@ import im.vector.matrix.android.api.session.room.timeline.TimelineEvent
|
||||||
import im.vector.matrix.android.internal.crypto.model.event.EncryptionEventContent
|
import im.vector.matrix.android.internal.crypto.model.event.EncryptionEventContent
|
||||||
import im.vector.riotredesign.R
|
import im.vector.riotredesign.R
|
||||||
import im.vector.riotredesign.core.resources.StringProvider
|
import im.vector.riotredesign.core.resources.StringProvider
|
||||||
|
import im.vector.riotredesign.features.home.room.detail.timeline.TimelineEventController
|
||||||
import im.vector.riotredesign.features.home.room.detail.timeline.helper.senderAvatar
|
import im.vector.riotredesign.features.home.room.detail.timeline.helper.senderAvatar
|
||||||
import im.vector.riotredesign.features.home.room.detail.timeline.helper.senderName
|
import im.vector.riotredesign.features.home.room.detail.timeline.helper.senderName
|
||||||
import im.vector.riotredesign.features.home.room.detail.timeline.item.MessageInformationData
|
import im.vector.riotredesign.features.home.room.detail.timeline.item.MessageInformationData
|
||||||
|
@ -31,7 +32,8 @@ import im.vector.riotredesign.features.home.room.detail.timeline.item.NoticeItem
|
||||||
|
|
||||||
class EncryptionItemFactory(private val stringProvider: StringProvider) {
|
class EncryptionItemFactory(private val stringProvider: StringProvider) {
|
||||||
|
|
||||||
fun create(event: TimelineEvent): NoticeItem? {
|
fun create(event: TimelineEvent,
|
||||||
|
callback: TimelineEventController.BaseCallback?): NoticeItem? {
|
||||||
val text = buildNoticeText(event.root, event.senderName) ?: return null
|
val text = buildNoticeText(event.root, event.senderName) ?: return null
|
||||||
val informationData = MessageInformationData(
|
val informationData = MessageInformationData(
|
||||||
eventId = event.root.eventId ?: "?",
|
eventId = event.root.eventId ?: "?",
|
||||||
|
@ -44,6 +46,7 @@ class EncryptionItemFactory(private val stringProvider: StringProvider) {
|
||||||
return NoticeItem_()
|
return NoticeItem_()
|
||||||
.noticeText(text)
|
.noticeText(text)
|
||||||
.informationData(informationData)
|
.informationData(informationData)
|
||||||
|
.baseCallback(callback)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun buildNoticeText(event: Event, senderName: String?): CharSequence? {
|
private fun buildNoticeText(event: Event, senderName: String?): CharSequence? {
|
||||||
|
|
|
@ -52,7 +52,7 @@ class TimelineItemFactory(private val messageItemFactory: MessageItemFactory,
|
||||||
EventType.CALL_ANSWER -> noticeItemFactory.create(event, callback)
|
EventType.CALL_ANSWER -> noticeItemFactory.create(event, callback)
|
||||||
|
|
||||||
// Crypto
|
// Crypto
|
||||||
EventType.ENCRYPTION -> encryptionItemFactory.create(event)
|
EventType.ENCRYPTION -> encryptionItemFactory.create(event, callback)
|
||||||
EventType.ENCRYPTED -> encryptedItemFactory.create(event, nextEvent, callback)
|
EventType.ENCRYPTED -> encryptedItemFactory.create(event, nextEvent, callback)
|
||||||
|
|
||||||
// Unhandled event types (yet)
|
// Unhandled event types (yet)
|
||||||
|
|
|
@ -38,11 +38,9 @@ abstract class NoticeItem : BaseEventItem<NoticeItem.Holder>() {
|
||||||
var baseCallback: TimelineEventController.BaseCallback? = null
|
var baseCallback: TimelineEventController.BaseCallback? = null
|
||||||
|
|
||||||
private var longClickListener = View.OnLongClickListener {
|
private var longClickListener = View.OnLongClickListener {
|
||||||
baseCallback?.onEventLongClicked(informationData, null, it)
|
return@OnLongClickListener baseCallback?.onEventLongClicked(informationData, null, it) == true
|
||||||
baseCallback != null
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
override fun bind(holder: Holder) {
|
override fun bind(holder: Holder) {
|
||||||
super.bind(holder)
|
super.bind(holder)
|
||||||
holder.noticeTextView.text = noticeText
|
holder.noticeTextView.text = noticeText
|
||||||
|
|
Loading…
Reference in New Issue