Add support for admin delete.

This commit is contained in:
Michelle Tang
2026-02-20 14:44:34 -05:00
committed by Cody Henthorne
parent 1968438ebb
commit 071fbfd916
45 changed files with 648 additions and 132 deletions

View File

@@ -48,6 +48,7 @@ import org.thoughtcrime.securesms.database.model.StoryType;
import org.thoughtcrime.securesms.dependencies.AppDependencies;
import org.thoughtcrime.securesms.jobmanager.Job;
import org.thoughtcrime.securesms.jobmanager.JobManager;
import org.thoughtcrime.securesms.jobs.AdminDeleteSendJob;
import org.thoughtcrime.securesms.jobs.AttachmentCompressionJob;
import org.thoughtcrime.securesms.jobs.AttachmentCopyJob;
import org.thoughtcrime.securesms.jobs.AttachmentUploadJob;
@@ -78,7 +79,6 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -507,7 +507,7 @@ public class MessageSender {
public static void sendRemoteDelete(long messageId) {
MessageTable db = SignalDatabase.messages();
db.markAsRemoteDelete(messageId);
db.markAsDeleteBySelf(messageId);
db.markAsSending(messageId);
try {
@@ -518,6 +518,17 @@ public class MessageSender {
}
}
public static void sendAdminDelete(long messageId) {
// TODO(michelle): Update with failure states
SignalDatabase.messages().markAsDeleteBySelf(messageId);
AdminDeleteSendJob job = AdminDeleteSendJob.create(messageId);
if (job != null) {
AppDependencies.getJobManager().add(job);
} else {
Log.w(TAG, "[sendAdminDelete] Could not create the admin delete job.");
}
}
public static void resendGroupMessage(@NonNull Context context, @NonNull MessageRecord messageRecord, @NonNull Set<RecipientId> filterRecipientIds) {
if (!messageRecord.isMms()) throw new AssertionError("Not Group");
sendGroupPush(context, messageRecord.getToRecipient(), messageRecord.getId(), filterRecipientIds, Collections.emptyList());