From 3f4e80992b7323ac8363563c627dab88c83335a0 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 10 Jun 2021 14:55:17 +0200 Subject: [PATCH] Animate the transition (faster than default), and ensure the callback is called, even if it's a no-op --- .../home/room/detail/composer/TextComposerView.kt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/TextComposerView.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/TextComposerView.kt index 96d592fe4b..fa5e736c1c 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/TextComposerView.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/TextComposerView.kt @@ -25,6 +25,7 @@ import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet import androidx.core.text.toSpannable import androidx.core.view.isVisible +import androidx.transition.AutoTransition import androidx.transition.ChangeBounds import androidx.transition.Fade import androidx.transition.Transition @@ -35,7 +36,6 @@ import im.vector.app.databinding.ComposerLayoutBinding /** * Encapsulate the timeline composer UX. - * */ class TextComposerView @JvmOverloads constructor( context: Context, @@ -71,7 +71,15 @@ class TextComposerView @JvmOverloads constructor( } override fun onTextBlankStateChanged(isBlank: Boolean) { - views.sendButton.isVisible = currentConstraintSetId == R.layout.composer_layout_constraint_set_expanded || !isBlank + callback?.onTextBlankStateChanged(isBlank) + val shouldBeVisible = currentConstraintSetId == R.layout.composer_layout_constraint_set_expanded || !isBlank + if (views.sendButton.isVisible != shouldBeVisible) { + TransitionManager.beginDelayedTransition( + this@TextComposerView, + AutoTransition().also { it.duration = 150 } + ) + views.sendButton.isVisible = shouldBeVisible + } } } views.composerRelatedMessageCloseButton.setOnClickListener {