Fix issue where you couldn't delete a blocked announcement group.

This commit is contained in:
Greyson Parrelli 2021-08-30 11:49:43 -04:00
parent 21b82e291b
commit eba3c55ec8

View file

@ -33,6 +33,7 @@ import org.thoughtcrime.securesms.sms.MessageSender;
import org.thoughtcrime.securesms.util.FeatureFlags; import org.thoughtcrime.securesms.util.FeatureFlags;
import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.whispersystems.libsignal.util.guava.Optional; import org.whispersystems.libsignal.util.guava.Optional;
import org.whispersystems.signalservice.internal.push.exceptions.GroupPatchNotAcceptedException;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
@ -177,7 +178,15 @@ final class MessageRequestRepository {
if (resolved.isGroup() && resolved.requireGroupId().isPush()) { if (resolved.isGroup() && resolved.requireGroupId().isPush()) {
try { try {
GroupManager.leaveGroupFromBlockOrMessageRequest(context, resolved.requireGroupId().requirePush()); GroupManager.leaveGroupFromBlockOrMessageRequest(context, resolved.requireGroupId().requirePush());
} catch (GroupChangeException | IOException e) { } catch (GroupChangeException | GroupPatchNotAcceptedException e) {
if (DatabaseFactory.getGroupDatabase(context).isCurrentMember(resolved.requireGroupId().requirePush(), Recipient.self().getId())) {
Log.w(TAG, "Failed to leave group, and we're still a member.", e);
error.onError(GroupChangeFailureReason.fromException(e));
return;
} else {
Log.w(TAG, "Failed to leave group, but we're not a member, so ignoring.");
}
} catch (IOException e) {
Log.w(TAG, e); Log.w(TAG, e);
error.onError(GroupChangeFailureReason.fromException(e)); error.onError(GroupChangeFailureReason.fromException(e));
return; return;