Create Event.getMsgType() extension
This commit is contained in:
parent
45bd1061d2
commit
e27dcbc9b9
@ -300,9 +300,17 @@ data class Event(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the value of "content.msgtype", if the Event type is "m.room.message"
|
||||||
|
* and if the content has it, and if it is a String
|
||||||
|
*/
|
||||||
|
fun Event.getMsgType(): String? {
|
||||||
|
if (getClearType() != EventType.MESSAGE) return null
|
||||||
|
return getClearContent()?.get(MessageContent.MSG_TYPE_JSON_KEY) as? String
|
||||||
|
}
|
||||||
|
|
||||||
fun Event.isTextMessage(): Boolean {
|
fun Event.isTextMessage(): Boolean {
|
||||||
return getClearType() == EventType.MESSAGE &&
|
return when (getMsgType()) {
|
||||||
when (getClearContent()?.get(MessageContent.MSG_TYPE_JSON_KEY)) {
|
|
||||||
MessageType.MSGTYPE_TEXT,
|
MessageType.MSGTYPE_TEXT,
|
||||||
MessageType.MSGTYPE_EMOTE,
|
MessageType.MSGTYPE_EMOTE,
|
||||||
MessageType.MSGTYPE_NOTICE -> true
|
MessageType.MSGTYPE_NOTICE -> true
|
||||||
@ -311,40 +319,35 @@ fun Event.isTextMessage(): Boolean {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun Event.isImageMessage(): Boolean {
|
fun Event.isImageMessage(): Boolean {
|
||||||
return getClearType() == EventType.MESSAGE &&
|
return when (getMsgType()) {
|
||||||
when (getClearContent()?.get(MessageContent.MSG_TYPE_JSON_KEY)) {
|
|
||||||
MessageType.MSGTYPE_IMAGE -> true
|
MessageType.MSGTYPE_IMAGE -> true
|
||||||
else -> false
|
else -> false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Event.isVideoMessage(): Boolean {
|
fun Event.isVideoMessage(): Boolean {
|
||||||
return getClearType() == EventType.MESSAGE &&
|
return when (getMsgType()) {
|
||||||
when (getClearContent()?.get(MessageContent.MSG_TYPE_JSON_KEY)) {
|
|
||||||
MessageType.MSGTYPE_VIDEO -> true
|
MessageType.MSGTYPE_VIDEO -> true
|
||||||
else -> false
|
else -> false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Event.isAudioMessage(): Boolean {
|
fun Event.isAudioMessage(): Boolean {
|
||||||
return getClearType() == EventType.MESSAGE &&
|
return when (getMsgType()) {
|
||||||
when (getClearContent()?.get(MessageContent.MSG_TYPE_JSON_KEY)) {
|
|
||||||
MessageType.MSGTYPE_AUDIO -> true
|
MessageType.MSGTYPE_AUDIO -> true
|
||||||
else -> false
|
else -> false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Event.isFileMessage(): Boolean {
|
fun Event.isFileMessage(): Boolean {
|
||||||
return getClearType() == EventType.MESSAGE &&
|
return when (getMsgType()) {
|
||||||
when (getClearContent()?.get(MessageContent.MSG_TYPE_JSON_KEY)) {
|
|
||||||
MessageType.MSGTYPE_FILE -> true
|
MessageType.MSGTYPE_FILE -> true
|
||||||
else -> false
|
else -> false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Event.isAttachmentMessage(): Boolean {
|
fun Event.isAttachmentMessage(): Boolean {
|
||||||
return getClearType() == EventType.MESSAGE &&
|
return when (getMsgType()) {
|
||||||
when (getClearContent()?.get(MessageContent.MSG_TYPE_JSON_KEY)) {
|
|
||||||
MessageType.MSGTYPE_IMAGE,
|
MessageType.MSGTYPE_IMAGE,
|
||||||
MessageType.MSGTYPE_AUDIO,
|
MessageType.MSGTYPE_AUDIO,
|
||||||
MessageType.MSGTYPE_VIDEO,
|
MessageType.MSGTYPE_VIDEO,
|
||||||
|
@ -46,10 +46,9 @@ import im.vector.app.features.media.ImageContentRenderer
|
|||||||
import im.vector.app.features.settings.VectorPreferences
|
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.extensions.orTrue
|
|
||||||
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.toModel
|
import org.matrix.android.sdk.api.session.events.model.toModel
|
||||||
import org.matrix.android.sdk.api.session.room.model.message.MessageContent
|
|
||||||
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.model.message.MessageType
|
||||||
import org.matrix.android.sdk.api.session.room.send.SendState
|
import org.matrix.android.sdk.api.session.room.send.SendState
|
||||||
@ -218,11 +217,9 @@ class MessageActionsEpoxyController @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun buildLocationUiData(state: MessageActionState): LocationUiData? {
|
private fun buildLocationUiData(state: MessageActionState): LocationUiData? {
|
||||||
val clearContent = state.timelineEvent()?.root?.getClearContent()
|
if (state.timelineEvent()?.root?.getMsgType() != MessageType.MSGTYPE_LOCATION) return null
|
||||||
val isLocationEvent = clearContent?.get(MessageContent.MSG_TYPE_JSON_KEY) == MessageType.MSGTYPE_LOCATION
|
|
||||||
if (!isLocationEvent) return null
|
|
||||||
|
|
||||||
val locationContent = clearContent.toModel<MessageLocationContent>(catchError = true)
|
val locationContent = state.timelineEvent()?.root?.getClearContent().toModel<MessageLocationContent>(catchError = true)
|
||||||
?: return null
|
?: return null
|
||||||
val locationUrl = locationContent.toLocationData()
|
val locationUrl = locationContent.toLocationData()
|
||||||
?.let { urlMapProvider.buildStaticMapUrl(it, INITIAL_MAP_ZOOM_IN_TIMELINE, 1200, 800) }
|
?.let { urlMapProvider.buildStaticMapUrl(it, INITIAL_MAP_ZOOM_IN_TIMELINE, 1200, 800) }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user