Fix deleting a disappeared message.

This commit is contained in:
Michelle Tang
2026-03-05 17:42:40 -05:00
committed by jeffrey-signal
parent 3d78d5473e
commit bd5f25ffc7
2 changed files with 15 additions and 11 deletions

View File

@@ -2319,6 +2319,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat
}
}
@Throws(NoSuchMessageException::class)
fun markAsDeleteBySelf(messageId: Long) {
val targetMessage: MessageRecord = getMessageRecord(messageId)
markAsRemoteDelete(targetMessage, Recipient.self().id)

View File

@@ -506,11 +506,10 @@ public class MessageSender {
}
public static void sendRemoteDelete(long messageId) {
MessageTable db = SignalDatabase.messages();
db.markAsDeleteBySelf(messageId);
db.markAsSending(messageId);
try {
MessageTable db = SignalDatabase.messages();
db.markAsDeleteBySelf(messageId);
db.markAsSending(messageId);
RemoteDeleteSendJob.create(messageId).enqueue();
onMessageSent();
} catch (NoSuchMessageException e) {
@@ -519,13 +518,17 @@ public class MessageSender {
}
public static void sendAdminDelete(long messageId) {
SignalDatabase.messages().markAsDeleteBySelf(messageId);
SignalDatabase.messages().markAsPendingAdminDelete(messageId);
AdminDeleteSendJob job = AdminDeleteSendJob.create(messageId, Collections.emptyList());
if (job != null) {
AppDependencies.getJobManager().add(job);
} else {
Log.w(TAG, "[sendAdminDelete] Could not create the admin delete job.");
try {
SignalDatabase.messages().markAsDeleteBySelf(messageId);
SignalDatabase.messages().markAsPendingAdminDelete(messageId);
AdminDeleteSendJob job = AdminDeleteSendJob.create(messageId, Collections.emptyList());
if (job != null) {
AppDependencies.getJobManager().add(job);
} else {
Log.w(TAG, "[sendAdminDelete] Could not create the admin delete job.");
}
} catch (NoSuchMessageException e) {
Log.w(TAG, "[sendAdminDelete] Could not find message! Ignoring.");
}
}