Create Event.isLocationMessage()

This commit is contained in:
Benoit Marty 2022-04-06 11:17:55 +02:00
parent e27dcbc9b9
commit e8f421fe34
2 changed files with 9 additions and 3 deletions

View File

@ -356,6 +356,13 @@ fun Event.isAttachmentMessage(): Boolean {
} }
} }
fun Event.isLocationMessage(): Boolean {
return when (getMsgType()) {
MessageType.MSGTYPE_LOCATION -> true
else -> false
}
}
fun Event.isPoll(): Boolean = getClearType() in EventType.POLL_START || getClearType() in EventType.POLL_END fun Event.isPoll(): Boolean = getClearType() in EventType.POLL_START || getClearType() in EventType.POLL_END
fun Event.isSticker(): Boolean = getClearType() == EventType.STICKER fun Event.isSticker(): Boolean = getClearType() == EventType.STICKER

View File

@ -47,10 +47,9 @@ import im.vector.app.features.settings.VectorPreferences
import im.vector.lib.core.utils.epoxy.charsequence.toEpoxyCharSequence import im.vector.lib.core.utils.epoxy.charsequence.toEpoxyCharSequence
import org.matrix.android.sdk.api.extensions.orFalse import org.matrix.android.sdk.api.extensions.orFalse
import org.matrix.android.sdk.api.failure.Failure import org.matrix.android.sdk.api.failure.Failure
import org.matrix.android.sdk.api.session.events.model.getMsgType import org.matrix.android.sdk.api.session.events.model.isLocationMessage
import org.matrix.android.sdk.api.session.events.model.toModel import org.matrix.android.sdk.api.session.events.model.toModel
import org.matrix.android.sdk.api.session.room.model.message.MessageLocationContent import org.matrix.android.sdk.api.session.room.model.message.MessageLocationContent
import org.matrix.android.sdk.api.session.room.model.message.MessageType
import org.matrix.android.sdk.api.session.room.send.SendState import org.matrix.android.sdk.api.session.room.send.SendState
import javax.inject.Inject import javax.inject.Inject
@ -217,7 +216,7 @@ class MessageActionsEpoxyController @Inject constructor(
} }
private fun buildLocationUiData(state: MessageActionState): LocationUiData? { private fun buildLocationUiData(state: MessageActionState): LocationUiData? {
if (state.timelineEvent()?.root?.getMsgType() != MessageType.MSGTYPE_LOCATION) return null if (state.timelineEvent()?.root?.isLocationMessage() != true) return null
val locationContent = state.timelineEvent()?.root?.getClearContent().toModel<MessageLocationContent>(catchError = true) val locationContent = state.timelineEvent()?.root?.getClearContent().toModel<MessageLocationContent>(catchError = true)
?: return null ?: return null