Create method buildMediaViewerNavTarget
This commit is contained in:
parent
ecd58293b4
commit
5443cf83c9
1 changed files with 37 additions and 50 deletions
|
|
@ -40,6 +40,7 @@ import io.element.android.features.messages.impl.timeline.TimelineController
|
||||||
import io.element.android.features.messages.impl.timeline.debug.EventDebugInfoNode
|
import io.element.android.features.messages.impl.timeline.debug.EventDebugInfoNode
|
||||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemAudioContent
|
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemAudioContent
|
||||||
|
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemEventContentWithAttachment
|
||||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemFileContent
|
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemFileContent
|
||||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemImageContent
|
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemImageContent
|
||||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemLocationContent
|
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemLocationContent
|
||||||
|
|
@ -331,16 +332,9 @@ class MessagesFlowNode @AssistedInject constructor(
|
||||||
private fun processEventClick(event: TimelineItem.Event): Boolean {
|
private fun processEventClick(event: TimelineItem.Event): Boolean {
|
||||||
return when (event.content) {
|
return when (event.content) {
|
||||||
is TimelineItemImageContent -> {
|
is TimelineItemImageContent -> {
|
||||||
val navTarget = NavTarget.MediaViewer(
|
val navTarget = buildMediaViewerNavTarget(
|
||||||
mediaInfo = MediaInfo(
|
event = event,
|
||||||
filename = event.content.filename,
|
content = event.content,
|
||||||
caption = event.content.caption,
|
|
||||||
mimeType = event.content.mimeType,
|
|
||||||
formattedFileSize = event.content.formattedFileSize,
|
|
||||||
fileExtension = event.content.fileExtension,
|
|
||||||
senderName = event.safeSenderName,
|
|
||||||
dateSent = event.sentTime,
|
|
||||||
),
|
|
||||||
mediaSource = event.content.mediaSource,
|
mediaSource = event.content.mediaSource,
|
||||||
thumbnailSource = event.content.thumbnailSource,
|
thumbnailSource = event.content.thumbnailSource,
|
||||||
)
|
)
|
||||||
|
|
@ -351,16 +345,9 @@ class MessagesFlowNode @AssistedInject constructor(
|
||||||
/* Sticker may have an empty url and no thumbnail
|
/* Sticker may have an empty url and no thumbnail
|
||||||
if encrypted on certain bridges */
|
if encrypted on certain bridges */
|
||||||
if (event.content.preferredMediaSource != null) {
|
if (event.content.preferredMediaSource != null) {
|
||||||
val navTarget = NavTarget.MediaViewer(
|
val navTarget = buildMediaViewerNavTarget(
|
||||||
mediaInfo = MediaInfo(
|
event = event,
|
||||||
filename = event.content.filename,
|
content = event.content,
|
||||||
caption = event.content.caption,
|
|
||||||
mimeType = event.content.mimeType,
|
|
||||||
formattedFileSize = event.content.formattedFileSize,
|
|
||||||
fileExtension = event.content.fileExtension,
|
|
||||||
senderName = event.safeSenderName,
|
|
||||||
dateSent = event.sentTime,
|
|
||||||
),
|
|
||||||
mediaSource = event.content.preferredMediaSource,
|
mediaSource = event.content.preferredMediaSource,
|
||||||
thumbnailSource = event.content.thumbnailSource,
|
thumbnailSource = event.content.thumbnailSource,
|
||||||
)
|
)
|
||||||
|
|
@ -371,16 +358,9 @@ class MessagesFlowNode @AssistedInject constructor(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
is TimelineItemVideoContent -> {
|
is TimelineItemVideoContent -> {
|
||||||
val navTarget = NavTarget.MediaViewer(
|
val navTarget = buildMediaViewerNavTarget(
|
||||||
mediaInfo = MediaInfo(
|
event = event,
|
||||||
filename = event.content.filename,
|
content = event.content,
|
||||||
caption = event.content.caption,
|
|
||||||
mimeType = event.content.mimeType,
|
|
||||||
formattedFileSize = event.content.formattedFileSize,
|
|
||||||
fileExtension = event.content.fileExtension,
|
|
||||||
senderName = event.safeSenderName,
|
|
||||||
dateSent = event.sentTime,
|
|
||||||
),
|
|
||||||
mediaSource = event.content.mediaSource,
|
mediaSource = event.content.mediaSource,
|
||||||
thumbnailSource = event.content.thumbnailSource,
|
thumbnailSource = event.content.thumbnailSource,
|
||||||
)
|
)
|
||||||
|
|
@ -388,16 +368,9 @@ class MessagesFlowNode @AssistedInject constructor(
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
is TimelineItemFileContent -> {
|
is TimelineItemFileContent -> {
|
||||||
val navTarget = NavTarget.MediaViewer(
|
val navTarget = buildMediaViewerNavTarget(
|
||||||
mediaInfo = MediaInfo(
|
event = event,
|
||||||
filename = event.content.filename,
|
content = event.content,
|
||||||
caption = event.content.caption,
|
|
||||||
mimeType = event.content.mimeType,
|
|
||||||
formattedFileSize = event.content.formattedFileSize,
|
|
||||||
fileExtension = event.content.fileExtension,
|
|
||||||
senderName = event.safeSenderName,
|
|
||||||
dateSent = event.sentTime,
|
|
||||||
),
|
|
||||||
mediaSource = event.content.mediaSource,
|
mediaSource = event.content.mediaSource,
|
||||||
thumbnailSource = event.content.thumbnailSource,
|
thumbnailSource = event.content.thumbnailSource,
|
||||||
)
|
)
|
||||||
|
|
@ -405,16 +378,9 @@ class MessagesFlowNode @AssistedInject constructor(
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
is TimelineItemAudioContent -> {
|
is TimelineItemAudioContent -> {
|
||||||
val navTarget = NavTarget.MediaViewer(
|
val navTarget = buildMediaViewerNavTarget(
|
||||||
mediaInfo = MediaInfo(
|
event = event,
|
||||||
filename = event.content.filename,
|
content = event.content,
|
||||||
caption = event.content.caption,
|
|
||||||
mimeType = event.content.mimeType,
|
|
||||||
formattedFileSize = event.content.formattedFileSize,
|
|
||||||
fileExtension = event.content.fileExtension,
|
|
||||||
senderName = event.safeSenderName,
|
|
||||||
dateSent = event.sentTime,
|
|
||||||
),
|
|
||||||
mediaSource = event.content.mediaSource,
|
mediaSource = event.content.mediaSource,
|
||||||
thumbnailSource = null,
|
thumbnailSource = null,
|
||||||
)
|
)
|
||||||
|
|
@ -433,6 +399,27 @@ class MessagesFlowNode @AssistedInject constructor(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun buildMediaViewerNavTarget(
|
||||||
|
event: TimelineItem.Event,
|
||||||
|
content: TimelineItemEventContentWithAttachment,
|
||||||
|
mediaSource: MediaSource,
|
||||||
|
thumbnailSource: MediaSource?,
|
||||||
|
): NavTarget {
|
||||||
|
return NavTarget.MediaViewer(
|
||||||
|
mediaInfo = MediaInfo(
|
||||||
|
filename = content.filename,
|
||||||
|
caption = content.caption,
|
||||||
|
mimeType = content.mimeType,
|
||||||
|
formattedFileSize = content.formattedFileSize,
|
||||||
|
fileExtension = content.fileExtension,
|
||||||
|
senderName = event.safeSenderName,
|
||||||
|
dateSent = event.sentTime,
|
||||||
|
),
|
||||||
|
mediaSource = mediaSource,
|
||||||
|
thumbnailSource = thumbnailSource,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
override fun View(modifier: Modifier) {
|
override fun View(modifier: Modifier) {
|
||||||
mentionSpanTheme.updateStyles(currentUserId = room.sessionId)
|
mentionSpanTheme.updateStyles(currentUserId = room.sessionId)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue