Fix react with any closing for story direct replies.

fork-5.53.8
Cody Henthorne 2022-04-07 13:33:33 -04:00
rodzic 2d6146351d
commit cb63fe600c
1 zmienionych plików z 13 dodań i 4 usunięć

Wyświetl plik

@ -38,6 +38,8 @@ class StoryDirectReplyDialogFragment :
ReactWithAnyEmojiBottomSheetDialogFragment.Callback { ReactWithAnyEmojiBottomSheetDialogFragment.Callback {
private val lifecycleDisposable = LifecycleDisposable() private val lifecycleDisposable = LifecycleDisposable()
private var isRequestingReactWithAny = false
private var isReactClosingAfterSend = false
private val viewModel: StoryDirectReplyViewModel by viewModels( private val viewModel: StoryDirectReplyViewModel by viewModels(
factoryProducer = { factoryProducer = {
@ -92,6 +94,7 @@ class StoryDirectReplyDialogFragment :
override fun onOpenReactionPicker() { override fun onOpenReactionPicker() {
dialog.dismiss() dialog.dismiss()
isRequestingReactWithAny = true
ReactWithAnyEmojiBottomSheetDialogFragment.createForStory().show(childFragmentManager, null) ReactWithAnyEmojiBottomSheetDialogFragment.createForStory().show(childFragmentManager, null)
} }
} }
@ -120,13 +123,13 @@ class StoryDirectReplyDialogFragment :
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
ViewUtil.focusAndShowKeyboard(composer) ViewUtil.focusAndShowKeyboard(composer.input)
} }
override fun onPause() { override fun onPause() {
super.onPause() super.onPause()
ViewUtil.hideKeyboard(requireContext(), composer) ViewUtil.hideKeyboard(requireContext(), composer.input)
} }
override fun openEmojiSearch() { override fun openEmojiSearch() {
@ -134,7 +137,7 @@ class StoryDirectReplyDialogFragment :
} }
override fun onKeyboardHidden() { override fun onKeyboardHidden() {
if (!composer.isRequestingEmojiDrawer) { if (!composer.isRequestingEmojiDrawer && !isRequestingReactWithAny) {
super.onKeyboardHidden() super.onKeyboardHidden()
} }
} }
@ -170,10 +173,16 @@ class StoryDirectReplyDialogFragment :
override fun onKeyEvent(keyEvent: KeyEvent?) = Unit 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) { override fun onReactWithAnyEmojiSelected(emoji: String) {
sendReaction(emoji) sendReaction(emoji)
isReactClosingAfterSend = true
} }
private fun sendReaction(emoji: String) { private fun sendReaction(emoji: String) {