Browse Source

Composer: avoid recomposition

feature/bma/flipper
ganfra 2 years ago
parent
commit
6c6fecf6e8
  1. 13
      features/messages/src/main/java/io/element/android/x/features/messages/MessagesScreen.kt
  2. 4
      libraries/textcomposer/src/main/java/io/element/android/x/textcomposer/TextComposer.kt

13
features/messages/src/main/java/io/element/android/x/features/messages/MessagesScreen.kt

@ -60,6 +60,12 @@ fun MessagesScreen( @@ -60,6 +60,12 @@ fun MessagesScreen(
) {
val viewModel: MessagesViewModel = mavericksViewModel(argsFactory = { roomId })
val composerViewModel: MessageComposerViewModel = mavericksViewModel(argsFactory = { roomId })
fun onSendMessage(textMessage: String) {
viewModel.sendMessage(textMessage)
composerViewModel.updateText("")
}
LogCompositions(tag = "MessagesScreen", msg = "Root")
val actionsSheetState = rememberModalBottomSheetState(
initialValue = ModalBottomSheetValue.Hidden,
@ -81,10 +87,7 @@ fun MessagesScreen( @@ -81,10 +87,7 @@ fun MessagesScreen(
hasMoreToLoad = hasMoreToLoad,
onReachedLoadMore = viewModel::loadMore,
onBackPressed = onBackPressed,
onSendMessage = {
viewModel.sendMessage(it)
composerViewModel.updateText("")
},
onSendMessage = ::onSendMessage,
composerFullScreen = composerFullScreen,
onComposerFullScreenChange = composerViewModel::onComposerFullScreenChange,
onComposerTextChange = composerViewModel::updateText,
@ -193,7 +196,7 @@ fun MessagesContent( @@ -193,7 +196,7 @@ fun MessagesContent(
onFullscreenToggle = onComposerFullScreenChange,
onComposerTextChange = onComposerTextChange,
composerCanSendMessage = composerCanSendMessage,
composerText = composerText?.charSequence,
composerText = composerText?.charSequence?.toString(),
modifier = Modifier
.fillMaxWidth()
.let {

4
libraries/textcomposer/src/main/java/io/element/android/x/textcomposer/TextComposer.kt

@ -1,9 +1,7 @@ @@ -1,9 +1,7 @@
package io.element.android.x.textcomposer
import android.content.res.ColorStateList
import android.graphics.Color
import android.net.Uri
import androidx.appcompat.widget.AppCompatEditText
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
@ -20,7 +18,7 @@ fun TextComposer( @@ -20,7 +18,7 @@ fun TextComposer(
onFullscreenToggle: () -> Unit,
onComposerTextChange: (CharSequence) -> Unit,
composerCanSendMessage: Boolean,
composerText: CharSequence?,
composerText: String?,
) {
val isInDarkMode = isSystemInDarkTheme()
AndroidView(

Loading…
Cancel
Save