Fix crash from treating mms groups like Signal groups after sms is disabled.

Fixes #12534
fork-5.53.8
Cody Henthorne 2022-10-17 11:33:16 -04:00 zatwierdzone przez Greyson Parrelli
rodzic ba3dd79d4e
commit 3b3dcdcb14
3 zmienionych plików z 7 dodań i 2 usunięć

Wyświetl plik

@ -2726,7 +2726,7 @@ public class ConversationParentFragment extends Fragment
inputPanel.setHideForBlockedState(true); inputPanel.setHideForBlockedState(true);
smsExportStub.setVisibility(View.GONE); smsExportStub.setVisibility(View.GONE);
registerButton.setVisibility(View.VISIBLE); 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); unblockButton.setVisibility(View.GONE);
inputPanel.setHideForBlockedState(true); inputPanel.setHideForBlockedState(true);
smsExportStub.setVisibility(View.VISIBLE); smsExportStub.setVisibility(View.VISIBLE);

Wyświetl plik

@ -158,6 +158,11 @@ public class RemoteDeleteSendJob extends BaseJob {
throw new IllegalStateException("Cannot delete a message that isn't yours!"); 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<Recipient> possible = Stream.of(recipients).map(Recipient::resolved).toList(); List<Recipient> possible = Stream.of(recipients).map(Recipient::resolved).toList();
List<Recipient> eligible = RecipientUtil.getEligibleForSending(Stream.of(recipients).map(Recipient::resolved).toList()); List<Recipient> eligible = RecipientUtil.getEligibleForSending(Stream.of(recipients).map(Recipient::resolved).toList());
List<RecipientId> skipped = Stream.of(SetUtil.difference(possible, eligible)).map(Recipient::getId).toList(); List<RecipientId> skipped = Stream.of(SetUtil.difference(possible, eligible)).map(Recipient::getId).toList();

Wyświetl plik

@ -130,7 +130,7 @@ public class IncomingLollipopMmsConnection extends LollipopMmsConnection impleme
try { try {
retrieved = (RetrieveConf) new PduParser(baos.toByteArray(), parseContentDisposition).parse(); 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); Log.w(TAG, "Badly formatted MMS message caused the parser to fail.", e);
throw new MmsException(e); throw new MmsException(e);
} }