diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailFragment.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailFragment.kt index 973dca0496..c9ec12c4c3 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailFragment.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailFragment.kt @@ -416,8 +416,8 @@ class RoomDetailFragment @Inject constructor( is TextComposerViewEvents.JoinRoomCommandSuccess -> handleJoinedToAnotherRoom(it) is TextComposerViewEvents.SendMessageResult -> renderSendMessageResult(it) is TextComposerViewEvents.ShowMessage -> showSnackWithMessage(it.message) - is TextComposerViewEvents.ShowRoomUpgradeDialog -> handleShowRoomUpgradeDialog(it) - is TextComposerViewEvents.OnSendButtonVisibilityChanged -> handleOnSendButtonVisibilityChanged(it) + is TextComposerViewEvents.ShowRoomUpgradeDialog -> handleShowRoomUpgradeDialog(it) + is TextComposerViewEvents.AnimateSendButtonVisibility -> handleSendButtonVisibilityChanged(it) }.exhaustive } @@ -468,8 +468,7 @@ class RoomDetailFragment @Inject constructor( } } - private fun handleOnSendButtonVisibilityChanged(event: TextComposerViewEvents.OnSendButtonVisibilityChanged) { - Timber.v("Handle on SendButtonVisibility: $event") + private fun handleSendButtonVisibilityChanged(event: TextComposerViewEvents.AnimateSendButtonVisibility) { if (event.isVisible) { views.voiceMessageRecorderView.isVisible = false views.composerLayout.views.sendButton.alpha = 0f diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/TextComposerViewEvents.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/TextComposerViewEvents.kt index 8ef1cca2da..8d0429ee06 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/TextComposerViewEvents.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/TextComposerViewEvents.kt @@ -22,7 +22,7 @@ import im.vector.app.features.command.Command sealed class TextComposerViewEvents : VectorViewEvents { - data class OnSendButtonVisibilityChanged(val isVisible: Boolean): TextComposerViewEvents() + data class AnimateSendButtonVisibility(val isVisible: Boolean): TextComposerViewEvents() data class ShowMessage(val message: String) : TextComposerViewEvents() diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/TextComposerViewModel.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/TextComposerViewModel.kt index 8d4dd78c29..988e5b697e 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/TextComposerViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/TextComposerViewModel.kt @@ -99,19 +99,19 @@ class TextComposerViewModel @AssistedInject constructor( currentComposerText = action.text this } - updateIsSendButtonVisibility() + updateIsSendButtonVisibility(true) } private fun subscribeToStateInternal() { selectSubscribe(TextComposerViewState::sendMode, TextComposerViewState::canSendMessage, TextComposerViewState::isVoiceRecording) { _, _, _ -> - updateIsSendButtonVisibility() + updateIsSendButtonVisibility(false) } } - private fun updateIsSendButtonVisibility() = setState { + private fun updateIsSendButtonVisibility(triggerAnimation: Boolean) = setState { val isSendButtonVisible = isComposerVisible && (sendMode !is SendMode.REGULAR || currentComposerText.isNotBlank()) - if (this.isSendButtonVisible != isSendButtonVisible) { - _viewEvents.post(TextComposerViewEvents.OnSendButtonVisibilityChanged(isSendButtonVisible)) + if (this.isSendButtonVisible != isSendButtonVisible && triggerAnimation) { + _viewEvents.post(TextComposerViewEvents.AnimateSendButtonVisibility(isSendButtonVisible)) } copy(isSendButtonVisible = isSendButtonVisible) }