diff --git a/features/messages/src/main/java/io/element/android/x/features/messages/MessagesScreen.kt b/features/messages/src/main/java/io/element/android/x/features/messages/MessagesScreen.kt index d63d301ad3..36974ae22c 100644 --- a/features/messages/src/main/java/io/element/android/x/features/messages/MessagesScreen.kt +++ b/features/messages/src/main/java/io/element/android/x/features/messages/MessagesScreen.kt @@ -3,7 +3,6 @@ package io.element.android.x.features.messages import Avatar -import android.net.Uri import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.clickable import androidx.compose.foundation.interaction.MutableInteractionSource @@ -39,7 +38,6 @@ import io.element.android.x.designsystem.components.avatar.AvatarData import io.element.android.x.features.messages.model.MessagesItemGroupPosition import io.element.android.x.features.messages.model.MessagesTimelineItemState import io.element.android.x.features.messages.model.MessagesViewState -import io.element.android.x.textcomposer.Callback import io.element.android.x.textcomposer.TextComposer private val BUBBLE_RADIUS = 16.dp @@ -122,30 +120,7 @@ fun MessagesContent( modifier = Modifier.weight(1f) ) TextComposer( - callback = object : Callback { - override fun onRichContentSelected(contentUri: Uri): Boolean { - return false - } - - override fun onTextChanged(text: CharSequence) { - } - - override fun onCloseRelatedMessage() { - } - - override fun onSendMessage(text: CharSequence) { - onSendMessage.invoke(text) - } - - override fun onAddAttachment() { - } - - override fun onExpandOrCompactChange() { - } - - override fun onFullScreenModeChanged() { - } - }, + onSendMessage = onSendMessage, modifier = Modifier .fillMaxWidth() .height(COMPOSER_HEIGHT) diff --git a/features/messages/src/main/java/io/element/android/x/features/messages/model/MessagesTimelineItemState.kt b/features/messages/src/main/java/io/element/android/x/features/messages/model/MessagesTimelineItemState.kt index 4a5ef94165..f50f2e41df 100644 --- a/features/messages/src/main/java/io/element/android/x/features/messages/model/MessagesTimelineItemState.kt +++ b/features/messages/src/main/java/io/element/android/x/features/messages/model/MessagesTimelineItemState.kt @@ -24,6 +24,7 @@ sealed interface MessagesTimelineItemState { } + } diff --git a/libraries/textcomposer/src/main/java/io/element/android/x/textcomposer/TextComposer.kt b/libraries/textcomposer/src/main/java/io/element/android/x/textcomposer/TextComposer.kt index 8150788fc6..4d1ad1839e 100644 --- a/libraries/textcomposer/src/main/java/io/element/android/x/textcomposer/TextComposer.kt +++ b/libraries/textcomposer/src/main/java/io/element/android/x/textcomposer/TextComposer.kt @@ -1,5 +1,6 @@ package io.element.android.x.textcomposer +import android.net.Uri import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.viewinterop.AndroidView @@ -8,15 +9,39 @@ import io.element.android.x.element.resources.R as ElementR @Composable fun TextComposer( - callback: Callback, + onSendMessage: (CharSequence) -> Unit, modifier: Modifier = Modifier, -){ +) { AndroidView( modifier = modifier, factory = { context -> RichTextComposerLayout(context).apply { // Sets up listeners for View -> Compose communication - this.callback = callback + this.callback = object : Callback { + override fun onRichContentSelected(contentUri: Uri): Boolean { + return false + } + + override fun onTextChanged(text: CharSequence) { + } + + override fun onCloseRelatedMessage() { + } + + override fun onSendMessage(text: CharSequence) { + onSendMessage(text) + } + + override fun onAddAttachment() { + } + + override fun onExpandOrCompactChange() { + } + + override fun onFullScreenModeChanged() { + } + + } val messageComposerView = (this as MessageComposerView) setupComposer(messageComposerView) }