From 6919e352d66b7031bc3fff0aa90546f225116a0b Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Thu, 20 Jan 2022 11:25:32 -0400 Subject: [PATCH] Fix crash when opening reactions bottom sheet. --- .../conversation/ConversationFragment.java | 14 +++++++++----- .../ReactionsBottomSheetDialogFragment.java | 8 +++++++- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java index a5271e036..5005e19a7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java @@ -1582,16 +1582,16 @@ public class ConversationFragment extends LoggingFragment implements Multiselect @Override public void onReactionClicked(@NonNull MultiselectPart multiselectPart, long messageId, boolean isMms) { - if (getContext() == null) return; + if (getParentFragment() == null) return; - ReactionsBottomSheetDialogFragment.create(messageId, isMms).show(requireFragmentManager(), null); + ReactionsBottomSheetDialogFragment.create(messageId, isMms).show(getParentFragmentManager(), null); } @Override public void onGroupMemberClicked(@NonNull RecipientId recipientId, @NonNull GroupId groupId) { - if (getContext() == null) return; + if (getParentFragment() == null) return; - RecipientBottomSheetDialogFragment.create(recipientId, groupId).show(requireFragmentManager(), "BOTTOM"); + RecipientBottomSheetDialogFragment.create(recipientId, groupId).show(getParentFragmentManager(), "BOTTOM"); } @Override @@ -1647,7 +1647,11 @@ public class ConversationFragment extends LoggingFragment implements Multiselect @Override public void onGroupMigrationLearnMoreClicked(@NonNull GroupMigrationMembershipChange membershipChange) { - GroupsV1MigrationInfoBottomSheetDialogFragment.show(requireFragmentManager(), membershipChange); + if (getParentFragment() == null) { + return; + } + + GroupsV1MigrationInfoBottomSheetDialogFragment.show(getParentFragmentManager(), membershipChange); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/reactions/ReactionsBottomSheetDialogFragment.java b/app/src/main/java/org/thoughtcrime/securesms/reactions/ReactionsBottomSheetDialogFragment.java index 95b47850a..edc529c3d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/reactions/ReactionsBottomSheetDialogFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/reactions/ReactionsBottomSheetDialogFragment.java @@ -57,7 +57,13 @@ public final class ReactionsBottomSheetDialogFragment extends BottomSheetDialogF public void onAttach(@NonNull Context context) { super.onAttach(context); - callback = (Callback) context; + if (context instanceof Callback) { + callback = (Callback) context; + } else if (getParentFragment() instanceof Callback) { + callback = (Callback) getParentFragment(); + } else { + throw new IllegalStateException("Parent component does not implement Callback"); + } } @Override