diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java index 8f8bcd3fd..afbc6cc90 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationParentFragment.java @@ -2726,7 +2726,7 @@ public class ConversationParentFragment extends Fragment inputPanel.setHideForBlockedState(true); smsExportStub.setVisibility(View.GONE); registerButton.setVisibility(View.VISIBLE); - } else if (!conversationSecurityInfo.isPushAvailable() && !(SignalStore.misc().getSmsExportPhase().isSmsSupported() && conversationSecurityInfo.isDefaultSmsApplication()) && recipient.hasSmsAddress()) { + } else if (!conversationSecurityInfo.isPushAvailable() && !(SignalStore.misc().getSmsExportPhase().isSmsSupported() && conversationSecurityInfo.isDefaultSmsApplication()) && (recipient.hasSmsAddress() || recipient.isMmsGroup())) { unblockButton.setVisibility(View.GONE); inputPanel.setHideForBlockedState(true); smsExportStub.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RemoteDeleteSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RemoteDeleteSendJob.java index 498cc8d2f..505da7691 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RemoteDeleteSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RemoteDeleteSendJob.java @@ -158,6 +158,11 @@ public class RemoteDeleteSendJob extends BaseJob { throw new IllegalStateException("Cannot delete a message that isn't yours!"); } + if (!conversationRecipient.isRegistered() || conversationRecipient.isMmsGroup()) { + Log.w(TAG, "Unable to remote delete non-push messages"); + return; + } + List possible = Stream.of(recipients).map(Recipient::resolved).toList(); List eligible = RecipientUtil.getEligibleForSending(Stream.of(recipients).map(Recipient::resolved).toList()); List skipped = Stream.of(SetUtil.difference(possible, eligible)).map(Recipient::getId).toList(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/IncomingLollipopMmsConnection.java b/app/src/main/java/org/thoughtcrime/securesms/mms/IncomingLollipopMmsConnection.java index efc29a74e..44df11a52 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/IncomingLollipopMmsConnection.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/IncomingLollipopMmsConnection.java @@ -130,7 +130,7 @@ public class IncomingLollipopMmsConnection extends LollipopMmsConnection impleme try { retrieved = (RetrieveConf) new PduParser(baos.toByteArray(), parseContentDisposition).parse(); - } catch (NullPointerException e) { + } catch (AssertionError | NullPointerException e) { Log.w(TAG, "Badly formatted MMS message caused the parser to fail.", e); throw new MmsException(e); }