Skip to content

Commit 2881718

Browse files
committed
Factorize calendar attachment detection
1 parent f5f6345 commit 2881718

File tree

3 files changed

+4
-6
lines changed

3 files changed

+4
-6
lines changed

app/src/main/java/com/infomaniak/mail/data/models/message/Message.kt

+2
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,8 @@ class Message : RealmObject {
167167
if (it == null) SentryLog.e("ThreadAdapter", "Message $uid has empty from")
168168
}
169169

170+
val calendarAttachment: Attachment? get() = attachments.singleOrNull(Attachment::isCalendarEvent)
171+
170172
val dkimStatus: MessageDKIM get() = enumValueOfOrNull<MessageDKIM>(_dkimStatus) ?: MessageDKIM.VALID
171173

172174
enum class MessageDKIM {

app/src/main/java/com/infomaniak/mail/ui/main/thread/ThreadAdapter.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ class ThreadAdapter(
180180
}
181181

182182
private fun ThreadViewHolder.bindCalendarEvent(message: Message) {
183-
val attachment = message.attachments.singleOrNull(Attachment::isCalendarEvent) ?: return
183+
val attachment = message.calendarAttachment ?: return
184184
val calendarEvent = message.latestCalendarEventResponse?.calendarEvent
185185

186186
binding.calendarEvent.apply {

app/src/main/java/com/infomaniak/mail/ui/main/thread/ThreadViewModel.kt

+1-5
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import com.infomaniak.mail.data.cache.mailboxContent.RefreshController
2828
import com.infomaniak.mail.data.cache.mailboxContent.RefreshController.RefreshMode
2929
import com.infomaniak.mail.data.cache.mailboxContent.ThreadController
3030
import com.infomaniak.mail.data.cache.mailboxInfo.MailboxController
31-
import com.infomaniak.mail.data.models.Attachment
3231
import com.infomaniak.mail.data.models.mailbox.Mailbox
3332
import com.infomaniak.mail.data.models.message.Message
3433
import com.infomaniak.mail.data.models.thread.Thread
@@ -200,10 +199,7 @@ class ThreadViewModel @Inject constructor(
200199
val alreadyTreated = !treatedMessagesForCalendarEvent.add(message.uid)
201200
if (alreadyTreated) return@forEach
202201

203-
val icsAttachments = message.attachments.filter(Attachment::isCalendarEvent)
204-
if (icsAttachments.count() != 1) return@forEach
205-
206-
val icsAttachment = icsAttachments.single()
202+
val icsAttachment = message.calendarAttachment ?: return@forEach
207203

208204
val calendarEventResponse = icsAttachment.resource?.let { resource ->
209205
ApiRepository.getAttachmentCalendarEvent(resource)

0 commit comments

Comments
 (0)