From 8f3e62245f826bcacd4e765d97c8976e924029da Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Tue, 30 Apr 2024 15:20:11 -0400 Subject: [PATCH] Fix some issues where views were accessed after being destroyed. --- .../securesms/conversation/v2/ConversationFragment.kt | 8 +++----- .../thoughtcrime/securesms/mediasend/CameraXFragment.java | 4 ++++ 2 files changed, 7 insertions(+), 5 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 044582a34e..829c9459c0 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 @@ -3098,7 +3098,7 @@ class ConversationFragment : } override fun onHide() { - if (!lifecycle.currentState.isAtLeast(Lifecycle.State.INITIALIZED)) { + if (!lifecycle.currentState.isAtLeast(Lifecycle.State.STARTED) || activity == null || activity?.isFinishing == true) { return } @@ -3107,10 +3107,8 @@ class ConversationFragment : getVoiceNoteMediaController().resumePlayback(selectedConversationModel.audioUri, messageRecord.getId()) } - if (activity != null) { - WindowUtil.setLightStatusBarFromTheme(requireActivity()) - WindowUtil.setLightNavigationBarFromTheme(requireActivity()) - } + WindowUtil.setLightStatusBarFromTheme(requireActivity()) + WindowUtil.setLightNavigationBarFromTheme(requireActivity()) clearFocusedItem() diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraXFragment.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraXFragment.java index 25be8d873b..078a0f04da 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraXFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraXFragment.java @@ -561,6 +561,10 @@ public class CameraXFragment extends LoggingFragment implements CameraFragment { return Unit.INSTANCE; } + if (!getLifecycle().getCurrentState().isAtLeast(androidx.lifecycle.Lifecycle.State.STARTED)) { + return Unit.INSTANCE; + } + getViewLifecycleOwner().getLifecycle().addObserver(cameraScreenBrightnessController); if (cameraController.hasCamera(CameraSelector.DEFAULT_FRONT_CAMERA) && cameraController.hasCamera(CameraSelector.DEFAULT_BACK_CAMERA)) { flipButton.setVisibility(View.VISIBLE);