From e9ae40e749b291aed942bece4e68bd3a952e9d6d Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Fri, 14 Mar 2025 13:39:22 -0400 Subject: [PATCH] Fix draft lost bug when leaving media send flow. --- .../mediasend/v2/review/AddMessageDialogFragment.kt | 7 ++++++- .../securesms/mediasend/v2/review/MediaReviewFragment.kt | 6 ++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/AddMessageDialogFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/AddMessageDialogFragment.kt index d748799282..0e31b7c5d0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/AddMessageDialogFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/AddMessageDialogFragment.kt @@ -91,6 +91,7 @@ class AddMessageDialogFragment : KeyboardEntryDialogFragment(R.layout.v2_media_a }) binding.content.addAMessageInput.setText(requireArguments().getCharSequence(ARG_INITIAL_TEXT)) + binding.content.addAMessageInput.addTextChangedListener { viewModel.setMessage(it) } binding.content.emojiToggle.setOnClickListener { onEmojiToggleClicked() } if (requireArguments().getBoolean(ARG_INITIAL_EMOJI_TOGGLE) && view is KeyboardAwareLinearLayout) { @@ -124,7 +125,11 @@ class AddMessageDialogFragment : KeyboardEntryDialogFragment(R.layout.v2_media_a ) viewModel.state.observe(viewLifecycleOwner) { state -> - binding.content.viewOnceToggle.displayedChild = if (state.viewOnceToggleState == MediaSelectionState.ViewOnceToggleState.ONCE) 1 else 0 + val newChild = if (state.viewOnceToggleState == MediaSelectionState.ViewOnceToggleState.ONCE) 1 else 0 + if (binding.content.viewOnceToggle.displayedChild != newChild) { + binding.content.viewOnceToggle.displayedChild = newChild + } + if (state.viewOnceToggleState == MediaSelectionState.ViewOnceToggleState.ONCE) { binding.content.addAMessageInput.text = null dismiss() diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewFragment.kt index 3b07d6cff8..7dc0acfd2c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewFragment.kt @@ -9,6 +9,7 @@ import android.graphics.Rect import android.net.Uri import android.os.Bundle import android.provider.OpenableColumns +import android.text.SpannableString import android.view.Gravity import android.view.View import android.view.ViewGroup @@ -496,10 +497,7 @@ class MediaReviewFragment : Fragment(R.layout.v2_media_review_fragment), Schedul when (viewOnceState) { MediaSelectionState.ViewOnceToggleState.INFINITE -> { addMessageButton.gravity = Gravity.CENTER_VERTICAL - addMessageButton.setText( - message.takeIf { it.isNotNullOrBlank() } ?: getString(R.string.MediaReviewFragment__add_a_message), - TextView.BufferType.SPANNABLE - ) + addMessageButton.text = SpannableString(message.takeIf { it.isNotNullOrBlank() } ?: getString(R.string.MediaReviewFragment__add_a_message)) addMessageButton.isClickable = true } MediaSelectionState.ViewOnceToggleState.ONCE -> {