From c7ffa61c55639d4e98f0dfe16205f44a3ee2a5af Mon Sep 17 00:00:00 2001 From: Andrew Date: Tue, 6 Feb 2024 09:15:59 +1030 Subject: [PATCH] Simplify MarkReadReceiver --- .../notifications/MarkReadReceiver.kt | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/MarkReadReceiver.kt b/app/src/main/java/org/thoughtcrime/securesms/notifications/MarkReadReceiver.kt index 9816a0c93b..b2fd0db760 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/MarkReadReceiver.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/MarkReadReceiver.kt @@ -52,6 +52,8 @@ class MarkReadReceiver : BroadcastReceiver() { const val THREAD_IDS_EXTRA = "thread_ids" const val NOTIFICATION_ID_EXTRA = "notification_id" + val messageExpirationManager = SSKEnvironment.shared.messageExpirationManager + @JvmStatic fun process( context: Context, @@ -63,18 +65,14 @@ class MarkReadReceiver : BroadcastReceiver() { sendReadReceipts(context, markedReadMessages) + val mmsSmsDatabase = DatabaseComponent.get(context).mmsSmsDatabase() + + // start disappear after read messages except TimerUpdates in groups. markedReadMessages .filter { it.expiryType == ExpiryType.AFTER_READ } - .forEach { info -> - DatabaseComponent.get(context).mmsSmsDatabase().getMessageForTimestamp(info.syncMessageId.timetamp) - ?.takeUnless { it.isExpirationTimerUpdate && it.recipient.isClosedGroupRecipient } - ?.run { - SSKEnvironment.shared.messageExpirationManager.startDisappearAfterRead( - info.syncMessageId.timetamp, - info.syncMessageId.address.serialize() - ) - } - } + .map { it.syncMessageId } + .filter { mmsSmsDatabase.getMessageForTimestamp(it.timetamp)?.run { isExpirationTimerUpdate && recipient.isClosedGroupRecipient } == false } + .forEach { messageExpirationManager.startDisappearAfterRead(it.timetamp, it.address.serialize()) } hashToDisappearAfterReadMessage(context, markedReadMessages)?.let { fetchUpdatedExpiriesAndScheduleDeletion(context, it)