proton-mail-android/app/src/main/java/ch/protonmail/android/activities/messageDetails/IntentExtrasData.kt

213 lines
8.6 KiB
Kotlin
Raw Normal View History

2020-04-16 15:44:53 +00:00
/*
2022-02-28 15:15:59 +00:00
* Copyright (c) 2022 Proton AG
Refactor MessageDatabase.kt to use User Id MAILAND-1186 # Conflicts: # app/src/main/java/ch/protonmail/android/activities/AddAttachmentsActivity.java # app/src/main/java/ch/protonmail/android/activities/SearchActivity.java # app/src/main/java/ch/protonmail/android/api/models/messages/receive/MessageSenderFactory.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageRepository.kt # app/src/main/java/ch/protonmail/android/data/local/model/Attachment.kt # app/src/main/java/ch/protonmail/android/data/local/model/Message.kt # app/src/main/java/ch/protonmail/android/jobs/CreateAndPostDraftJob.java # app/src/main/java/ch/protonmail/android/jobs/UpdateAndPostDraftJob.java # app/src/main/java/ch/protonmail/android/worker/DeleteAttachmentWorker.kt # Conflicts: # app/src/main/java/ch/protonmail/android/api/services/MessagesService.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageRepository.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageViewModel.kt # app/src/main/java/ch/protonmail/android/data/local/model/Message.kt # app/src/main/java/ch/protonmail/android/utils/resources/StringResourceResolver.kt # Conflicts: # app/src/main/java/ch/protonmail/android/api/segments/event/EventHandler.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageRepository.kt # app/src/test/java/ch/protonmail/android/usecase/delete/DeleteLabelTest.kt # Conflicts: # app/src/androidTest/java/ch/protonmail/android/api/models/room/messages/MessageDaoTest.kt # app/src/main/java/ch/protonmail/android/api/models/messages/receive/ServerAttachment.kt # app/src/main/java/ch/protonmail/android/api/models/room/messages/LocalAttachment.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageRepository.kt # app/src/main/java/ch/protonmail/android/data/local/MessageDao.kt # app/src/main/java/ch/protonmail/android/data/local/model/Attachment.kt # app/src/main/java/ch/protonmail/android/data/local/model/AttachmentHeaders.java # app/src/main/java/ch/protonmail/android/data/local/model/AttachmentMetadata.kt # app/src/main/java/ch/protonmail/android/data/local/model/AttachmentTypesConverter.kt # app/src/main/java/ch/protonmail/android/data/local/model/Message.kt # app/src/main/java/ch/protonmail/android/jobs/messages/PostMessageJob.java # Conflicts: # app/src/main/java/ch/protonmail/android/activities/AddAttachmentsActivity.java # app/src/main/java/ch/protonmail/android/data/local/MessageDao.kt # Conflicts: # app/src/main/java/ch/protonmail/android/core/ProtonMailApplication.java # app/src/main/java/ch/protonmail/android/jobs/messages/PostMessageJob.java
2021-03-17 14:45:53 +00:00
*
2022-02-28 15:15:59 +00:00
* This file is part of Proton Mail.
Refactor MessageDatabase.kt to use User Id MAILAND-1186 # Conflicts: # app/src/main/java/ch/protonmail/android/activities/AddAttachmentsActivity.java # app/src/main/java/ch/protonmail/android/activities/SearchActivity.java # app/src/main/java/ch/protonmail/android/api/models/messages/receive/MessageSenderFactory.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageRepository.kt # app/src/main/java/ch/protonmail/android/data/local/model/Attachment.kt # app/src/main/java/ch/protonmail/android/data/local/model/Message.kt # app/src/main/java/ch/protonmail/android/jobs/CreateAndPostDraftJob.java # app/src/main/java/ch/protonmail/android/jobs/UpdateAndPostDraftJob.java # app/src/main/java/ch/protonmail/android/worker/DeleteAttachmentWorker.kt # Conflicts: # app/src/main/java/ch/protonmail/android/api/services/MessagesService.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageRepository.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageViewModel.kt # app/src/main/java/ch/protonmail/android/data/local/model/Message.kt # app/src/main/java/ch/protonmail/android/utils/resources/StringResourceResolver.kt # Conflicts: # app/src/main/java/ch/protonmail/android/api/segments/event/EventHandler.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageRepository.kt # app/src/test/java/ch/protonmail/android/usecase/delete/DeleteLabelTest.kt # Conflicts: # app/src/androidTest/java/ch/protonmail/android/api/models/room/messages/MessageDaoTest.kt # app/src/main/java/ch/protonmail/android/api/models/messages/receive/ServerAttachment.kt # app/src/main/java/ch/protonmail/android/api/models/room/messages/LocalAttachment.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageRepository.kt # app/src/main/java/ch/protonmail/android/data/local/MessageDao.kt # app/src/main/java/ch/protonmail/android/data/local/model/Attachment.kt # app/src/main/java/ch/protonmail/android/data/local/model/AttachmentHeaders.java # app/src/main/java/ch/protonmail/android/data/local/model/AttachmentMetadata.kt # app/src/main/java/ch/protonmail/android/data/local/model/AttachmentTypesConverter.kt # app/src/main/java/ch/protonmail/android/data/local/model/Message.kt # app/src/main/java/ch/protonmail/android/jobs/messages/PostMessageJob.java # Conflicts: # app/src/main/java/ch/protonmail/android/activities/AddAttachmentsActivity.java # app/src/main/java/ch/protonmail/android/data/local/MessageDao.kt # Conflicts: # app/src/main/java/ch/protonmail/android/core/ProtonMailApplication.java # app/src/main/java/ch/protonmail/android/jobs/messages/PostMessageJob.java
2021-03-17 14:45:53 +00:00
*
2022-02-28 15:15:59 +00:00
* Proton Mail is free software: you can redistribute it and/or modify
2020-04-16 15:44:53 +00:00
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
Refactor MessageDatabase.kt to use User Id MAILAND-1186 # Conflicts: # app/src/main/java/ch/protonmail/android/activities/AddAttachmentsActivity.java # app/src/main/java/ch/protonmail/android/activities/SearchActivity.java # app/src/main/java/ch/protonmail/android/api/models/messages/receive/MessageSenderFactory.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageRepository.kt # app/src/main/java/ch/protonmail/android/data/local/model/Attachment.kt # app/src/main/java/ch/protonmail/android/data/local/model/Message.kt # app/src/main/java/ch/protonmail/android/jobs/CreateAndPostDraftJob.java # app/src/main/java/ch/protonmail/android/jobs/UpdateAndPostDraftJob.java # app/src/main/java/ch/protonmail/android/worker/DeleteAttachmentWorker.kt # Conflicts: # app/src/main/java/ch/protonmail/android/api/services/MessagesService.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageRepository.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageViewModel.kt # app/src/main/java/ch/protonmail/android/data/local/model/Message.kt # app/src/main/java/ch/protonmail/android/utils/resources/StringResourceResolver.kt # Conflicts: # app/src/main/java/ch/protonmail/android/api/segments/event/EventHandler.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageRepository.kt # app/src/test/java/ch/protonmail/android/usecase/delete/DeleteLabelTest.kt # Conflicts: # app/src/androidTest/java/ch/protonmail/android/api/models/room/messages/MessageDaoTest.kt # app/src/main/java/ch/protonmail/android/api/models/messages/receive/ServerAttachment.kt # app/src/main/java/ch/protonmail/android/api/models/room/messages/LocalAttachment.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageRepository.kt # app/src/main/java/ch/protonmail/android/data/local/MessageDao.kt # app/src/main/java/ch/protonmail/android/data/local/model/Attachment.kt # app/src/main/java/ch/protonmail/android/data/local/model/AttachmentHeaders.java # app/src/main/java/ch/protonmail/android/data/local/model/AttachmentMetadata.kt # app/src/main/java/ch/protonmail/android/data/local/model/AttachmentTypesConverter.kt # app/src/main/java/ch/protonmail/android/data/local/model/Message.kt # app/src/main/java/ch/protonmail/android/jobs/messages/PostMessageJob.java # Conflicts: # app/src/main/java/ch/protonmail/android/activities/AddAttachmentsActivity.java # app/src/main/java/ch/protonmail/android/data/local/MessageDao.kt # Conflicts: # app/src/main/java/ch/protonmail/android/core/ProtonMailApplication.java # app/src/main/java/ch/protonmail/android/jobs/messages/PostMessageJob.java
2021-03-17 14:45:53 +00:00
*
2022-02-28 15:15:59 +00:00
* Proton Mail is distributed in the hope that it will be useful,
2020-04-16 15:44:53 +00:00
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
Refactor MessageDatabase.kt to use User Id MAILAND-1186 # Conflicts: # app/src/main/java/ch/protonmail/android/activities/AddAttachmentsActivity.java # app/src/main/java/ch/protonmail/android/activities/SearchActivity.java # app/src/main/java/ch/protonmail/android/api/models/messages/receive/MessageSenderFactory.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageRepository.kt # app/src/main/java/ch/protonmail/android/data/local/model/Attachment.kt # app/src/main/java/ch/protonmail/android/data/local/model/Message.kt # app/src/main/java/ch/protonmail/android/jobs/CreateAndPostDraftJob.java # app/src/main/java/ch/protonmail/android/jobs/UpdateAndPostDraftJob.java # app/src/main/java/ch/protonmail/android/worker/DeleteAttachmentWorker.kt # Conflicts: # app/src/main/java/ch/protonmail/android/api/services/MessagesService.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageRepository.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageViewModel.kt # app/src/main/java/ch/protonmail/android/data/local/model/Message.kt # app/src/main/java/ch/protonmail/android/utils/resources/StringResourceResolver.kt # Conflicts: # app/src/main/java/ch/protonmail/android/api/segments/event/EventHandler.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageRepository.kt # app/src/test/java/ch/protonmail/android/usecase/delete/DeleteLabelTest.kt # Conflicts: # app/src/androidTest/java/ch/protonmail/android/api/models/room/messages/MessageDaoTest.kt # app/src/main/java/ch/protonmail/android/api/models/messages/receive/ServerAttachment.kt # app/src/main/java/ch/protonmail/android/api/models/room/messages/LocalAttachment.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageRepository.kt # app/src/main/java/ch/protonmail/android/data/local/MessageDao.kt # app/src/main/java/ch/protonmail/android/data/local/model/Attachment.kt # app/src/main/java/ch/protonmail/android/data/local/model/AttachmentHeaders.java # app/src/main/java/ch/protonmail/android/data/local/model/AttachmentMetadata.kt # app/src/main/java/ch/protonmail/android/data/local/model/AttachmentTypesConverter.kt # app/src/main/java/ch/protonmail/android/data/local/model/Message.kt # app/src/main/java/ch/protonmail/android/jobs/messages/PostMessageJob.java # Conflicts: # app/src/main/java/ch/protonmail/android/activities/AddAttachmentsActivity.java # app/src/main/java/ch/protonmail/android/data/local/MessageDao.kt # Conflicts: # app/src/main/java/ch/protonmail/android/core/ProtonMailApplication.java # app/src/main/java/ch/protonmail/android/jobs/messages/PostMessageJob.java
2021-03-17 14:45:53 +00:00
*
2020-04-16 15:44:53 +00:00
* You should have received a copy of the GNU General Public License
2022-02-28 15:15:59 +00:00
* along with Proton Mail. If not, see https://www.gnu.org/licenses/.
2020-04-16 15:44:53 +00:00
*/
package ch.protonmail.android.activities.messageDetails
import android.net.Uri
2020-04-16 15:44:53 +00:00
import ch.protonmail.android.api.models.User
import ch.protonmail.android.api.models.address.Address
import ch.protonmail.android.core.BigContentHolder
import ch.protonmail.android.core.Constants
Replace imports for import ch.protonmail.android.api.models.room..+; MAILAND-1189 # Conflicts: # app/src/androidTest/java/ch/protonmail/android/api/models/room/ContactGroupsDatabaseTest.kt # app/src/main/java/ch/protonmail/android/api/segments/contact/ContactEmailsManager.kt # app/src/main/java/ch/protonmail/android/api/segments/event/EventHandler.kt # app/src/main/java/ch/protonmail/android/contacts/groups/details/ContactGroupDetailsViewModel.kt # app/src/main/java/ch/protonmail/android/contacts/groups/list/ContactGroupsFragment.kt # app/src/main/java/ch/protonmail/android/contacts/groups/list/ContactGroupsRepository.kt # app/src/main/java/ch/protonmail/android/contacts/groups/list/ContactGroupsViewModel.kt # app/src/main/java/ch/protonmail/android/contacts/list/listView/ProtonMailContactsLiveData.kt # app/src/main/java/ch/protonmail/android/jobs/UpdateContactJob.java # app/src/test/java/ch/protonmail/android/contacts/details/ContactDetailsRepositoryTest.kt # app/src/test/java/ch/protonmail/android/contacts/details/ContactGroupsRepositoryTest.kt # app/src/test/java/ch/protonmail/android/contacts/groups/ContactGroupsViewModelTest.kt # app/src/test/java/ch/protonmail/android/contacts/groups/edit/ContactGroupEditCreateRepositoryTest.kt # Conflicts: # app/src/main/java/ch/protonmail/android/activities/messageDetails/viewmodel/MessageDetailsViewModel.kt # app/src/main/java/ch/protonmail/android/api/models/messages/receive/ServerAttachment.kt # app/src/main/java/ch/protonmail/android/attachments/DownloadEmbeddedAttachmentsWorker.kt # app/src/main/java/ch/protonmail/android/jobs/helper/EmbeddedImage.kt # app/src/main/java/ch/protonmail/android/jobs/messages/PostMessageJob.java # Conflicts: # app/src/androidTest/java/ch/protonmail/android/api/models/room/contacts/ContactDaoTest.kt # Conflicts: # app/src/main/java/ch/protonmail/android/api/models/factories/PackageFactory.java # app/src/main/java/ch/protonmail/android/api/models/factories/SendPreferencesFactory.java # app/src/main/java/ch/protonmail/android/attachments/UploadAttachments.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageViewModel.kt # app/src/main/java/ch/protonmail/android/core/ProtonMailApplication.java # app/src/main/java/ch/protonmail/android/jobs/messages/PostMessageJob.java # app/src/main/java/ch/protonmail/android/usecase/compose/SaveDraft.kt # app/src/test/java/ch/protonmail/android/attachments/UploadAttachmentsTest.kt # app/src/test/java/ch/protonmail/android/compose/ComposeMessageViewModelTest.kt # app/src/test/java/ch/protonmail/android/usecase/compose/SaveDraftTest.kt # Conflicts: # app/src/main/java/ch/protonmail/android/di/ApplicationModule.kt # app/src/main/java/ch/protonmail/android/fcm/FcmIntentService.java
2021-03-18 09:46:25 +00:00
import ch.protonmail.android.data.local.model.Attachment
Refactor MessageDatabase.kt to use User Id MAILAND-1186 # Conflicts: # app/src/main/java/ch/protonmail/android/activities/AddAttachmentsActivity.java # app/src/main/java/ch/protonmail/android/activities/SearchActivity.java # app/src/main/java/ch/protonmail/android/api/models/messages/receive/MessageSenderFactory.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageRepository.kt # app/src/main/java/ch/protonmail/android/data/local/model/Attachment.kt # app/src/main/java/ch/protonmail/android/data/local/model/Message.kt # app/src/main/java/ch/protonmail/android/jobs/CreateAndPostDraftJob.java # app/src/main/java/ch/protonmail/android/jobs/UpdateAndPostDraftJob.java # app/src/main/java/ch/protonmail/android/worker/DeleteAttachmentWorker.kt # Conflicts: # app/src/main/java/ch/protonmail/android/api/services/MessagesService.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageRepository.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageViewModel.kt # app/src/main/java/ch/protonmail/android/data/local/model/Message.kt # app/src/main/java/ch/protonmail/android/utils/resources/StringResourceResolver.kt # Conflicts: # app/src/main/java/ch/protonmail/android/api/segments/event/EventHandler.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageRepository.kt # app/src/test/java/ch/protonmail/android/usecase/delete/DeleteLabelTest.kt # Conflicts: # app/src/androidTest/java/ch/protonmail/android/api/models/room/messages/MessageDaoTest.kt # app/src/main/java/ch/protonmail/android/api/models/messages/receive/ServerAttachment.kt # app/src/main/java/ch/protonmail/android/api/models/room/messages/LocalAttachment.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageRepository.kt # app/src/main/java/ch/protonmail/android/data/local/MessageDao.kt # app/src/main/java/ch/protonmail/android/data/local/model/Attachment.kt # app/src/main/java/ch/protonmail/android/data/local/model/AttachmentHeaders.java # app/src/main/java/ch/protonmail/android/data/local/model/AttachmentMetadata.kt # app/src/main/java/ch/protonmail/android/data/local/model/AttachmentTypesConverter.kt # app/src/main/java/ch/protonmail/android/data/local/model/Message.kt # app/src/main/java/ch/protonmail/android/jobs/messages/PostMessageJob.java # Conflicts: # app/src/main/java/ch/protonmail/android/activities/AddAttachmentsActivity.java # app/src/main/java/ch/protonmail/android/data/local/MessageDao.kt # Conflicts: # app/src/main/java/ch/protonmail/android/core/ProtonMailApplication.java # app/src/main/java/ch/protonmail/android/jobs/messages/PostMessageJob.java
2021-03-17 14:45:53 +00:00
import ch.protonmail.android.data.local.model.LocalAttachment
Replace imports for import ch.protonmail.android.api.models.room..+; MAILAND-1189 # Conflicts: # app/src/androidTest/java/ch/protonmail/android/api/models/room/ContactGroupsDatabaseTest.kt # app/src/main/java/ch/protonmail/android/api/segments/contact/ContactEmailsManager.kt # app/src/main/java/ch/protonmail/android/api/segments/event/EventHandler.kt # app/src/main/java/ch/protonmail/android/contacts/groups/details/ContactGroupDetailsViewModel.kt # app/src/main/java/ch/protonmail/android/contacts/groups/list/ContactGroupsFragment.kt # app/src/main/java/ch/protonmail/android/contacts/groups/list/ContactGroupsRepository.kt # app/src/main/java/ch/protonmail/android/contacts/groups/list/ContactGroupsViewModel.kt # app/src/main/java/ch/protonmail/android/contacts/list/listView/ProtonMailContactsLiveData.kt # app/src/main/java/ch/protonmail/android/jobs/UpdateContactJob.java # app/src/test/java/ch/protonmail/android/contacts/details/ContactDetailsRepositoryTest.kt # app/src/test/java/ch/protonmail/android/contacts/details/ContactGroupsRepositoryTest.kt # app/src/test/java/ch/protonmail/android/contacts/groups/ContactGroupsViewModelTest.kt # app/src/test/java/ch/protonmail/android/contacts/groups/edit/ContactGroupEditCreateRepositoryTest.kt # Conflicts: # app/src/main/java/ch/protonmail/android/activities/messageDetails/viewmodel/MessageDetailsViewModel.kt # app/src/main/java/ch/protonmail/android/api/models/messages/receive/ServerAttachment.kt # app/src/main/java/ch/protonmail/android/attachments/DownloadEmbeddedAttachmentsWorker.kt # app/src/main/java/ch/protonmail/android/jobs/helper/EmbeddedImage.kt # app/src/main/java/ch/protonmail/android/jobs/messages/PostMessageJob.java # Conflicts: # app/src/androidTest/java/ch/protonmail/android/api/models/room/contacts/ContactDaoTest.kt # Conflicts: # app/src/main/java/ch/protonmail/android/api/models/factories/PackageFactory.java # app/src/main/java/ch/protonmail/android/api/models/factories/SendPreferencesFactory.java # app/src/main/java/ch/protonmail/android/attachments/UploadAttachments.kt # app/src/main/java/ch/protonmail/android/compose/ComposeMessageViewModel.kt # app/src/main/java/ch/protonmail/android/core/ProtonMailApplication.java # app/src/main/java/ch/protonmail/android/jobs/messages/PostMessageJob.java # app/src/main/java/ch/protonmail/android/usecase/compose/SaveDraft.kt # app/src/test/java/ch/protonmail/android/attachments/UploadAttachmentsTest.kt # app/src/test/java/ch/protonmail/android/compose/ComposeMessageViewModelTest.kt # app/src/test/java/ch/protonmail/android/usecase/compose/SaveDraftTest.kt # Conflicts: # app/src/main/java/ch/protonmail/android/di/ApplicationModule.kt # app/src/main/java/ch/protonmail/android/fcm/FcmIntentService.java
2021-03-18 09:46:25 +00:00
import ch.protonmail.android.data.local.model.Message
2020-04-16 15:44:53 +00:00
class IntentExtrasData(
val user: User,
val userAddresses: List<Address>,
val toRecipientListString: String,
val messageCcList: String,
val includeCCList: Boolean,
val senderEmailAddress: String,
val messageSenderName: String,
val newMessageTitle: String?,
val content: String,
val body: String,
val largeMessageBody: Boolean,
val messageAction: Constants.MessageActionType,
val imagesDisplayed: Boolean,
val remoteContentDisplayed: Boolean,
val isPGPMime: Boolean,
val timeMs: Long,
val messageId: String?,
val addressID: String?,
val addressEmailAlias: String?,
val mBigContentHolder: BigContentHolder,
val attachments: ArrayList<LocalAttachment>,
val embeddedImagesAttachmentsExist: Boolean
) {
2020-04-16 15:44:53 +00:00
class Builder {
2020-04-16 15:44:53 +00:00
private lateinit var user: User
private lateinit var userAddresses: List<Address>
private lateinit var message: Message
private lateinit var toRecipientListString: String
private lateinit var messageCcList: String
private var includeCCList: Boolean = false
private lateinit var senderEmailAddress: String
private lateinit var messageSenderName: String
private var newMessageTitle: String? = ""
private lateinit var content: String
private var body: String = ""
private var largeMessageBody: Boolean = false
private var messageAction = Constants.MessageActionType.REPLY
private var imagesDisplayed: Boolean = false
private var remoteContentDisplayed: Boolean = false
private var isPGPMime: Boolean = false
private var timeMs: Long = 0L
private var messageId: String? = ""
private var addressID: String? = ""
private var addressEmailAlias: String? = ""
private lateinit var mBigContentHolder: BigContentHolder
private lateinit var attachments: ArrayList<LocalAttachment>
private var embeddedImagesAttachmentsExist: Boolean = false
fun user(user: User) = apply { this.user = user }
fun userAddresses() = apply { this.userAddresses = user.addresses }
fun message(message: Message) = apply { this.message = message }
fun toRecipientListString(toRecipientListString: String) =
apply { this.toRecipientListString = toRecipientListString }
fun messageCcList() = apply { this.messageCcList = message.ccListString }
fun includeCCList(includeCCList: Boolean) = apply { this.includeCCList = includeCCList }
fun senderEmailAddress() =
apply { this.senderEmailAddress = message.sender!!.emailAddress ?: "" }
fun messageSenderName() = apply { this.messageSenderName = message.senderName ?: "" }
fun newMessageTitle(newMessageTitle: String?) = apply {
this.newMessageTitle =
newMessageTitle
2020-04-16 15:44:53 +00:00
}
fun content(content: String) = apply { this.content = content }
fun mBigContentHolder(mBigContentHolder: BigContentHolder) =
apply { this.mBigContentHolder = mBigContentHolder }
fun body() = apply {
val bodyTemp = if (message.isPGPMime) message.decryptedBody else content
if (bodyTemp != null && bodyTemp.isNotEmpty() &&
bodyTemp.toByteArray().size > Constants.MAX_INTENT_STRING_SIZE
) {
2020-04-16 15:44:53 +00:00
this.mBigContentHolder.content = bodyTemp
this.largeMessageBody = true
} else {
this.body = bodyTemp ?: ""
}
}
fun messageAction(messageAction: Constants.MessageActionType) = apply { this.messageAction = messageAction }
fun imagesDisplayed(imagesDisplayed: Boolean) =
apply { this.imagesDisplayed = imagesDisplayed }
2020-04-16 15:44:53 +00:00
fun remoteContentDisplayed(remoteContentDisplayed: Boolean) =
apply { this.remoteContentDisplayed = remoteContentDisplayed }
fun isPGPMime() = apply { this.isPGPMime = message.isPGPMime }
fun timeMs() = apply { this.timeMs = message.timeMs }
fun messageId() = apply { this.messageId = message.messageId }
fun addressID() = apply { this.addressID = message.addressID }
2020-04-16 15:44:53 +00:00
/**
* This method extract user's email alias, but also normalizes it
* so the non-alias part is equal to user's original address,
* because API is case-sensitive when we send (not when we receive).
*/
fun addressEmailAlias() = apply {
val recipients = message.toList + message.ccList + message.bccList
var originalAddress: String? = null
val aliasAddress = recipients.find {
if (it.emailAddress.contains("+")) {
val nonAliasAddress =
"${it.emailAddress.substringBefore("+")}@${it.emailAddress.substringAfter("@")}"
val address =
user.addresses.find { address -> address.email.equals(nonAliasAddress, ignoreCase = true) }
2020-04-16 15:44:53 +00:00
if (address != null) {
originalAddress = address.email
true
} else {
false
}
} else {
false
}
}
if (aliasAddress != null) {
val aliasPart = aliasAddress.emailAddress.substringBefore("@").substringAfter("+")
this.addressEmailAlias = "${
(originalAddress as String).substringBefore(
"@"
)
}+$aliasPart@${(originalAddress as String).substringAfter("@")}"
2020-04-16 15:44:53 +00:00
} else {
this.addressEmailAlias = null
}
}
fun attachments(
attachments: ArrayList<LocalAttachment>,
embeddedImagesAttachments:
MutableList<Attachment>?
) = apply {
2020-04-16 15:44:53 +00:00
if (!message.isPGPMime && messageAction == Constants.MessageActionType.FORWARD) {
this.embeddedImagesAttachmentsExist = embeddedImagesAttachments != null &&
!embeddedImagesAttachments.isEmpty()
2020-04-16 15:44:53 +00:00
this.attachments = attachments
} else if (!message.isPGPMime &&
(messageAction == Constants.MessageActionType.REPLY || messageAction == Constants.MessageActionType.REPLY_ALL) &&
embeddedImagesAttachments != null
) {
2020-04-16 15:44:53 +00:00
val att =
ArrayList(LocalAttachment.createLocalAttachmentList(embeddedImagesAttachments))
this.attachments = att
this.embeddedImagesAttachmentsExist = true
} else if (message.isPGPMime) {
attachments.forEach { it.uri = Uri.EMPTY }
this.attachments = attachments
2020-04-16 15:44:53 +00:00
} else {
this.attachments = attachments
2020-04-16 15:44:53 +00:00
}
}
fun build() = IntentExtrasData(
user,
userAddresses,
toRecipientListString,
messageCcList,
includeCCList,
senderEmailAddress,
messageSenderName,
newMessageTitle,
content,
body,
largeMessageBody,
messageAction,
imagesDisplayed,
remoteContentDisplayed,
isPGPMime,
timeMs,
messageId,
addressID,
addressEmailAlias,
mBigContentHolder,
attachments,
embeddedImagesAttachmentsExist
)
}
}