From cb63fe600c94d8dcadfc7e131b6516c965f8b48a Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Thu, 7 Apr 2022 13:33:33 -0400 Subject: [PATCH] Fix react with any closing for story direct replies. --- .../direct/StoryDirectReplyDialogFragment.kt | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/direct/StoryDirectReplyDialogFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/direct/StoryDirectReplyDialogFragment.kt index a777055c8e..14afbe79a9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/direct/StoryDirectReplyDialogFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/direct/StoryDirectReplyDialogFragment.kt @@ -38,6 +38,8 @@ class StoryDirectReplyDialogFragment : ReactWithAnyEmojiBottomSheetDialogFragment.Callback { private val lifecycleDisposable = LifecycleDisposable() + private var isRequestingReactWithAny = false + private var isReactClosingAfterSend = false private val viewModel: StoryDirectReplyViewModel by viewModels( factoryProducer = { @@ -92,6 +94,7 @@ class StoryDirectReplyDialogFragment : override fun onOpenReactionPicker() { dialog.dismiss() + isRequestingReactWithAny = true ReactWithAnyEmojiBottomSheetDialogFragment.createForStory().show(childFragmentManager, null) } } @@ -120,13 +123,13 @@ class StoryDirectReplyDialogFragment : override fun onResume() { super.onResume() - ViewUtil.focusAndShowKeyboard(composer) + ViewUtil.focusAndShowKeyboard(composer.input) } override fun onPause() { super.onPause() - ViewUtil.hideKeyboard(requireContext(), composer) + ViewUtil.hideKeyboard(requireContext(), composer.input) } override fun openEmojiSearch() { @@ -134,7 +137,7 @@ class StoryDirectReplyDialogFragment : } override fun onKeyboardHidden() { - if (!composer.isRequestingEmojiDrawer) { + if (!composer.isRequestingEmojiDrawer && !isRequestingReactWithAny) { super.onKeyboardHidden() } } @@ -170,10 +173,16 @@ class StoryDirectReplyDialogFragment : override fun onKeyEvent(keyEvent: KeyEvent?) = Unit - override fun onReactWithAnyEmojiDialogDismissed() = Unit + override fun onReactWithAnyEmojiDialogDismissed() { + isRequestingReactWithAny = false + if (!isReactClosingAfterSend) { + ViewUtil.focusAndShowKeyboard(composer.input) + } + } override fun onReactWithAnyEmojiSelected(emoji: String) { sendReaction(emoji) + isReactClosingAfterSend = true } private fun sendReaction(emoji: String) {