From f740b69ffe484c25f49dab0d3cc5562f1f56ceab Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Thu, 27 Jul 2023 15:36:38 -0400 Subject: [PATCH] Fix lifecycle crashes with keyboard fragment and media sending. --- .../securesms/conversation/v2/ConversationFragment.kt | 7 ++++--- .../securesms/util/fragments/ListenerExtensions.kt | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt index 2c46c12956..04d4567181 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt @@ -514,7 +514,6 @@ class ConversationFragment : } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - registerForResults() disposables.bindTo(viewLifecycleOwner) FullscreenHelper(requireActivity()).showSystemUI() @@ -523,6 +522,8 @@ class ConversationFragment : inlineQueryViewModel = createActivityViewModel { InlineQueryViewModelV2(recipientRepository = conversationRecipientRepository) } + attachmentManager = AttachmentManager(requireContext(), requireView(), AttachmentManagerListener()) + initializeConversationThreadUi() val conversationToolbarOnScrollHelper = ConversationToolbarOnScrollHelper( @@ -552,6 +553,8 @@ class ConversationFragment : ToolbarDependentMarginListener(binding.toolbar) initializeMediaKeyboard() + + registerForResults() } override fun onViewStateRestored(savedInstanceState: Bundle?) { @@ -799,8 +802,6 @@ class ConversationFragment : menuProvider.afterFirstRenderMode = true - attachmentManager = AttachmentManager(requireContext(), requireView(), AttachmentManagerListener()) - viewLifecycleOwner.lifecycle.addObserver(LastScrolledPositionUpdater(adapter, layoutManager, viewModel)) disposables += viewModel.recipient diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/fragments/ListenerExtensions.kt b/app/src/main/java/org/thoughtcrime/securesms/util/fragments/ListenerExtensions.kt index 3a6ccbd538..e2b52d6ed4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/fragments/ListenerExtensions.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/fragments/ListenerExtensions.kt @@ -17,7 +17,7 @@ inline fun Fragment.findListener(): T? { parent = parent.parentFragment } - return requireActivity() as? T + return activity as? T } /** @@ -40,9 +40,9 @@ inline fun Fragment.requireListener(): T { parent = parent.parentFragment } - return requireActivity() as T + return activity as T } catch (e: ClassCastException) { - hierarchy.add(requireActivity()::class.java.name) + hierarchy.add(activity?.let { it::class.java.name } ?: "") throw ListenerNotFoundException(hierarchy, e) } }