proton-mail-android/app/src/main/java/ch/protonmail/android/activities/composeMessage/MessageBuilderData.kt

261 lines
10 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.composeMessage
import android.text.Spanned
import android.text.SpannedString
import ch.protonmail.android.api.models.SendPreference
import ch.protonmail.android.core.BigContentHolder
import ch.protonmail.android.core.Constants
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 MessageBuilderData(
val message: Message,
val senderEmailAddress: String,
val senderName: String,
val messageTitle: String?,
val content: String,
val body: String,
val largeMessageBody: Boolean,
val isPGPMime: Boolean,
val messageTimestamp: Long,
val messageId: String?,
val addressId: String,
val addressEmailAlias: String?,
val mBigContentHolder: BigContentHolder,
val attachmentList: ArrayList<LocalAttachment>,
2020-04-16 15:44:53 +00:00
val embeddedAttachmentsList: ArrayList<LocalAttachment>,
val signature: String,
val mobileFooter: String,
2020-04-16 15:44:53 +00:00
val messagePassword: String?,
val passwordHint: String?,
val isPasswordValid: Boolean,
val expiresAfterInSeconds: Long = 0,
2020-04-16 15:44:53 +00:00
val sendPreferences: Map<String, SendPreference>,
val isRespondInlineButtonVisible: Boolean,
val isRespondInlineChecked: Boolean,
val showImages: Boolean,
val showRemoteContent: Boolean,
val initialMessageContent: String,
val decryptedMessage: String,
val isMessageBodyVisible: Boolean,
val quotedHeader: Spanned,
val uploadAttachments: Boolean
2020-04-16 15:44:53 +00:00
) {
class Builder {
private lateinit var message: Message
private lateinit var senderEmailAddress: String
private lateinit var senderName: String
private var messageTitle: String? = ""
private var content: String = ""
private var body: String = ""
private var largeMessageBody: Boolean = false
private var isPGPMime: Boolean = false
private var messageTimestamp: Long = 0L
private var messageId: String? = ""
private var addressId: String = ""
private var addressEmailAlias: String? = null
private var mBigContentHolder: BigContentHolder = BigContentHolder()
private var attachmentList: ArrayList<LocalAttachment> = ArrayList()
2020-04-16 15:44:53 +00:00
private var embeddedAttachmentsList: ArrayList<LocalAttachment> = ArrayList()
private var isDirty: Boolean = false
private var signature: String = ""
private var mobileFooter: String = ""
2020-04-16 15:44:53 +00:00
private var messagePassword: String? = null
private var passwordHint: String? = ""
private var isPasswordValid: Boolean = true
private var expiresAfterInSeconds: Long = 0
2020-04-16 15:44:53 +00:00
private var sendPreferences: Map<String, SendPreference> = emptyMap()
private var isRespondInlineButtonVisible: Boolean = true
private var isRespondInlineChecked: Boolean = false
private var showImages: Boolean = false
private var showRemoteContent: Boolean = false
private var initialMessageContent: String = ""
private var decryptedMessage: String = ""
private var isMessageBodyVisible: Boolean = false
private var quotedHeader: Spanned = SpannedString("")
private var uploadAttachments: Boolean = false
@Synchronized
fun fromOld(oldObject: MessageBuilderData) = apply {
this.message = oldObject.message
this.senderEmailAddress = oldObject.senderEmailAddress
this.senderName = oldObject.senderName
this.messageTitle = oldObject.messageTitle
this.content = oldObject.content
this.body = oldObject.body
this.largeMessageBody = oldObject.largeMessageBody
this.isPGPMime = oldObject.isPGPMime
this.messageTimestamp = oldObject.messageTimestamp
this.messageId = oldObject.messageId
this.addressId = oldObject.addressId
this.addressEmailAlias = oldObject.addressEmailAlias
this.mBigContentHolder = oldObject.mBigContentHolder
this.attachmentList = oldObject.attachmentList
this.embeddedAttachmentsList = oldObject.embeddedAttachmentsList
this.signature = oldObject.signature
this.mobileFooter = oldObject.mobileFooter
2020-04-16 15:44:53 +00:00
this.messagePassword = oldObject.messagePassword
this.passwordHint = oldObject.passwordHint
this.isPasswordValid = oldObject.isPasswordValid
this.expiresAfterInSeconds = oldObject.expiresAfterInSeconds
2020-04-16 15:44:53 +00:00
this.sendPreferences = oldObject.sendPreferences
this.isRespondInlineButtonVisible = oldObject.isRespondInlineButtonVisible
this.isRespondInlineChecked = oldObject.isRespondInlineChecked
this.showImages = oldObject.showImages
this.showRemoteContent = oldObject.showRemoteContent
this.initialMessageContent = oldObject.initialMessageContent
this.isMessageBodyVisible = oldObject.isMessageBodyVisible
this.quotedHeader = oldObject.quotedHeader
this.uploadAttachments = oldObject.uploadAttachments
}
fun message(message: Message) = apply { this.message = message }
fun decryptedMessage(decryptedMessage: String) =
apply { this.decryptedMessage = decryptedMessage }
fun senderEmailAddress(senderEmailAddress: String) =
apply {
this.senderEmailAddress = senderEmailAddress
message.sender!!.emailAddress = senderEmailAddress
}
fun messageSenderName(senderName: String) = apply {
this.senderName = senderName
message.senderName = senderName
}
fun messageTitle(messageTitle: String?) = apply { this.messageTitle = messageTitle }
fun content(content: String) = apply { this.content = content }
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) {
this.mBigContentHolder.content = bodyTemp
this.largeMessageBody = true
} else {
this.body = bodyTemp ?: ""
}
}
fun isPGPMime(isPGPMime: Boolean) = apply { this.isPGPMime = isPGPMime }
fun messageTimestamp(messageTimestamp: Long) =
apply { this.messageTimestamp = messageTimestamp }
fun messageId() = apply { this.messageId = message.messageId }
fun addressId(addressId: String) = apply { this.addressId = addressId }
fun addressEmailAlias(addressEmailAlias: String?) = apply { this.addressEmailAlias = addressEmailAlias }
fun attachmentList(attachments: ArrayList<LocalAttachment>) = apply {
2020-04-16 15:44:53 +00:00
this.attachmentList = attachments
}
fun embeddedAttachmentsList(embeddedAttachments: ArrayList<LocalAttachment>) =
apply { this.embeddedAttachmentsList = embeddedAttachments }
fun signature(signature: String) = apply { this.signature = signature }
fun mobileFooter(mobileFooter: String) =
apply { this.mobileFooter = mobileFooter }
2020-04-16 15:44:53 +00:00
fun messagePassword(messagePassword: String?) =
apply { this.messagePassword = messagePassword }
fun passwordHint(passwordHint: String?) = apply { this.passwordHint = passwordHint }
fun isPasswordValid(isPasswordValid: Boolean) =
apply { this.isPasswordValid = isPasswordValid }
fun expiresAfterInSeconds(expiresAfterInSeconds: Long) =
apply { this.expiresAfterInSeconds = expiresAfterInSeconds }
2020-04-16 15:44:53 +00:00
fun sendPreferences(sendPreferences: Map<String, SendPreference>) =
apply { this.sendPreferences = sendPreferences }
fun isRespondInlineButtonVisible(isRespondInlineButtonVisible: Boolean) =
apply { this.isRespondInlineButtonVisible = isRespondInlineButtonVisible }
fun isRespondInlineChecked(isRespondInlineChecked: Boolean) =
apply { this.isRespondInlineChecked = isRespondInlineChecked }
fun showImages(showImages: Boolean) =
apply { this.showImages = showImages }
fun showRemoteContent(showRemoteContent: Boolean) =
apply { this.showRemoteContent = showRemoteContent }
fun initialMessageContent(initialMessageContent: String) =
apply { this.initialMessageContent = initialMessageContent }
fun isMessageBodyVisible(isMessageBodyVisible: Boolean) =
apply { this.isMessageBodyVisible = isMessageBodyVisible }
fun quotedHeader(quotedHeader: Spanned) =
apply { this.quotedHeader = quotedHeader }
fun uploadAttachments(uploadAttachments: Boolean) =
apply { this.uploadAttachments = uploadAttachments }
fun build(): MessageBuilderData {
2020-04-16 15:44:53 +00:00
return MessageBuilderData(
message,
senderEmailAddress,
senderName,
messageTitle,
content,
body,
largeMessageBody,
isPGPMime,
messageTimestamp,
messageId,
addressId,
addressEmailAlias,
mBigContentHolder,
attachmentList,
embeddedAttachmentsList,
signature,
mobileFooter,
messagePassword,
passwordHint,
isPasswordValid,
expiresAfterInSeconds,
sendPreferences,
isRespondInlineButtonVisible,
isRespondInlineChecked,
showImages,
showRemoteContent,
initialMessageContent,
decryptedMessage,
isMessageBodyVisible,
quotedHeader,
uploadAttachments
2020-04-16 15:44:53 +00:00
)
}
}
}