diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt index e3d32bcd75..112f584f4e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt @@ -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) diff --git a/app/src/main/java/org/thoughtcrime/securesms/sms/MessageSender.java b/app/src/main/java/org/thoughtcrime/securesms/sms/MessageSender.java index 81489e639e..49d2b4ac1f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sms/MessageSender.java +++ b/app/src/main/java/org/thoughtcrime/securesms/sms/MessageSender.java @@ -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."); } }