Add support for sending images from the keyboard #1977
This commit is contained in:
parent
9ac488b684
commit
47f0a2e73c
5 changed files with 28 additions and 1 deletions
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
package io.element.android.features.messages.impl.messagecomposer
|
||||
|
||||
import android.net.Uri
|
||||
import androidx.compose.runtime.Immutable
|
||||
import io.element.android.features.messages.impl.mentions.MentionSuggestion
|
||||
import io.element.android.libraries.textcomposer.model.Message
|
||||
|
|
@ -26,6 +27,7 @@ import io.element.android.libraries.textcomposer.model.Suggestion
|
|||
sealed interface MessageComposerEvents {
|
||||
data object ToggleFullScreenState : MessageComposerEvents
|
||||
data class SendMessage(val message: Message) : MessageComposerEvents
|
||||
data class SendUri(val uri: Uri) : MessageComposerEvents
|
||||
data object CloseSpecialMode : MessageComposerEvents
|
||||
data class SetMode(val composerMode: MessageComposerMode) : MessageComposerEvents
|
||||
data object AddAttachment : MessageComposerEvents
|
||||
|
|
|
|||
|
|
@ -225,6 +225,18 @@ class MessageComposerPresenter @Inject constructor(
|
|||
updateComposerMode = { messageComposerContext.composerMode = it },
|
||||
richTextEditorState = richTextEditorState,
|
||||
)
|
||||
is MessageComposerEvents.SendUri -> appCoroutineScope.sendAttachment(
|
||||
attachment = Attachment.Media(
|
||||
localMedia = localMediaFactory.createFromUri(
|
||||
uri = event.uri,
|
||||
mimeType = null,
|
||||
name = null,
|
||||
formattedFileSize = null
|
||||
),
|
||||
compressIfPossible = true
|
||||
),
|
||||
attachmentState = attachmentsState,
|
||||
)
|
||||
is MessageComposerEvents.SetMode -> {
|
||||
messageComposerContext.composerMode = event.composerMode
|
||||
when (event.composerMode) {
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
package io.element.android.features.messages.impl.messagecomposer
|
||||
|
||||
import android.net.Uri
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.IntrinsicSize
|
||||
import androidx.compose.foundation.layout.height
|
||||
|
|
@ -52,6 +53,10 @@ internal fun MessageComposerView(
|
|||
state.eventSink(MessageComposerEvents.SendMessage(message))
|
||||
}
|
||||
|
||||
fun sendUri(uri: Uri) {
|
||||
state.eventSink(MessageComposerEvents.SendUri(uri))
|
||||
}
|
||||
|
||||
fun onAddAttachment() {
|
||||
state.eventSink(MessageComposerEvents.AddAttachment)
|
||||
}
|
||||
|
|
@ -117,6 +122,7 @@ internal fun MessageComposerView(
|
|||
onSuggestionReceived = ::onSuggestionReceived,
|
||||
onError = ::onError,
|
||||
currentUserId = state.currentUserId,
|
||||
onRichContentSelected = ::sendUri,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue