diff --git a/app/src/main/java/com/infomaniak/mail/data/LocalSettings.kt b/app/src/main/java/com/infomaniak/mail/data/LocalSettings.kt index 89b1275de1..c57d4f0816 100644 --- a/app/src/main/java/com/infomaniak/mail/data/LocalSettings.kt +++ b/app/src/main/java/com/infomaniak/mail/data/LocalSettings.kt @@ -69,7 +69,7 @@ class LocalSettings private constructor(context: Context) : SharedValues { var autoAdvanceNaturalThread by sharedValue("autoAdvanceNaturalThreadKey", AutoAdvanceMode.FOLLOWING_THREAD) var showWebViewOutdated by sharedValue("showWebViewOutdatedKey", true) var accessTokenApiCallRecord by sharedValue("accessTokenApiCallRecordKey", null) - var lastSelectedScheduleEpoch by sharedValue("lastSelectedSchedule", null) + var lastSelectedScheduleEpoch by sharedValue("lastSelectedScheduleEpochKey", null) fun removeSettings() = sharedPreferences.transaction { clear() } diff --git a/app/src/main/java/com/infomaniak/mail/data/cache/RealmMigrations.kt b/app/src/main/java/com/infomaniak/mail/data/cache/RealmMigrations.kt index 456ef67c4d..86f78f2bd9 100644 --- a/app/src/main/java/com/infomaniak/mail/data/cache/RealmMigrations.kt +++ b/app/src/main/java/com/infomaniak/mail/data/cache/RealmMigrations.kt @@ -85,6 +85,13 @@ private fun MigrationContext.keepDefaultValuesAfterNineteenthMigration() { set(propertyName = "isDisplayed", value = true) } } + + enumerate(className = "Message") { oldObject: DynamicRealmObject, newObject: DynamicMutableRealmObject? -> + newObject?.apply { + // Rename property without losing its previous value + set(propertyName = "isScheduledMessage", value = oldObject.getValue(fieldName = "isScheduled")) + } + } } } //endregion diff --git a/app/src/main/java/com/infomaniak/mail/data/cache/mailboxContent/MessageController.kt b/app/src/main/java/com/infomaniak/mail/data/cache/mailboxContent/MessageController.kt index da14ab0d06..cbdfec54da 100644 --- a/app/src/main/java/com/infomaniak/mail/data/cache/mailboxContent/MessageController.kt +++ b/app/src/main/java/com/infomaniak/mail/data/cache/mailboxContent/MessageController.kt @@ -85,11 +85,11 @@ class MessageController @Inject constructor(private val mailboxContentRealm: Rea fun getMovableMessages(thread: Thread): List { val byFolderId = "${Message::folderId.name} == '${thread.folderId}'" - return getMessagesAndDuplicates(thread, "$byFolderId AND $isNotScheduled") + return getMessagesAndDuplicates(thread, "$byFolderId AND $isNotScheduledMessage") } fun getUnscheduledMessages(thread: Thread): List { - return getMessagesAndDuplicates(thread, isNotScheduled) + return getMessagesAndDuplicates(thread, isNotScheduledMessage) } private fun getMessagesAndDuplicates(thread: Thread, query: String): List { @@ -152,7 +152,7 @@ class MessageController @Inject constructor(private val mailboxContentRealm: Rea companion object { private val isNotDraft = "${Message::isDraft.name} == false" - private val isNotScheduled = "${Message::isScheduled.name} == false" + private val isNotScheduledMessage = "${Message::isScheduledMessage.name} == false" //region Queries private fun getMessagesQuery(messageUid: String, realm: TypedRealm): RealmQuery { diff --git a/app/src/main/java/com/infomaniak/mail/data/models/FeatureFlag.kt b/app/src/main/java/com/infomaniak/mail/data/models/FeatureFlag.kt index aac8fc9ca3..96474a41ec 100644 --- a/app/src/main/java/com/infomaniak/mail/data/models/FeatureFlag.kt +++ b/app/src/main/java/com/infomaniak/mail/data/models/FeatureFlag.kt @@ -21,5 +21,5 @@ package com.infomaniak.mail.data.models enum class FeatureFlag(val apiName: String) { AI("ai-mail-composer"), BIMI("bimi"), - SCHEDULE_SEND_DRAFT("schedule-send-draft"), + SCHEDULE_DRAFTS("schedule-send-draft"), } diff --git a/app/src/main/java/com/infomaniak/mail/data/models/draft/SendDraftResult.kt b/app/src/main/java/com/infomaniak/mail/data/models/draft/SendDraftResult.kt index 01757292b0..4497c7146c 100644 --- a/app/src/main/java/com/infomaniak/mail/data/models/draft/SendDraftResult.kt +++ b/app/src/main/java/com/infomaniak/mail/data/models/draft/SendDraftResult.kt @@ -23,5 +23,5 @@ import kotlinx.serialization.Serializable @Serializable data class SendDraftResult( @SerialName("etop") - val etopScheduledDate: String, + val scheduledMessageEtop: String, ) diff --git a/app/src/main/java/com/infomaniak/mail/data/models/getMessages/ActivitiesResult.kt b/app/src/main/java/com/infomaniak/mail/data/models/getMessages/ActivitiesResult.kt index b4189d1d1b..e21825360d 100644 --- a/app/src/main/java/com/infomaniak/mail/data/models/getMessages/ActivitiesResult.kt +++ b/app/src/main/java/com/infomaniak/mail/data/models/getMessages/ActivitiesResult.kt @@ -44,7 +44,7 @@ data class ActivitiesResult( @SerialName("forwarded") val isForwarded: Boolean, @SerialName("scheduled") - val isScheduled: Boolean, + val isScheduledMessage: Boolean, @SerialName("seen") val isSeen: Boolean, ) diff --git a/app/src/main/java/com/infomaniak/mail/data/models/message/Message.kt b/app/src/main/java/com/infomaniak/mail/data/models/message/Message.kt index 4887e18b88..80273f4d99 100644 --- a/app/src/main/java/com/infomaniak/mail/data/models/message/Message.kt +++ b/app/src/main/java/com/infomaniak/mail/data/models/message/Message.kt @@ -98,7 +98,7 @@ class Message : RealmObject { // Boolean used to know if this Message is currently being sent, but can // still be cancelled during 10~30 sec, depending on user configuration @SerialName("scheduled") - var isScheduled: Boolean = false + var isScheduledMessage: Boolean = false var preview: String = "" var size: Int = 0 @SerialName("has_unsubscribe_link") @@ -325,7 +325,7 @@ class Message : RealmObject { isFavorite = flags.isFavorite isAnswered = flags.isAnswered isForwarded = flags.isForwarded - isScheduled = flags.isScheduled + isScheduledMessage = flags.isScheduledMessage } fun shouldBeExpanded(index: Int, lastIndex: Int) = !isDraft && (!isSeen || index == lastIndex) diff --git a/app/src/main/java/com/infomaniak/mail/ui/MainActivity.kt b/app/src/main/java/com/infomaniak/mail/ui/MainActivity.kt index a4b674f7df..5136d53bbf 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/MainActivity.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/MainActivity.kt @@ -303,8 +303,8 @@ class MainActivity : BaseActivity() { val userId = getInt(DraftsActionsWorker.RESULT_USER_ID_KEY, 0) if (userId != AccountUtils.currentUserId) return - getLong(DraftsActionsWorker.BIGGEST_ETOP_SCHEDULED_DATE_KEY, 0).takeIf { it > 0 }?.let { etopScheduledDate -> - mainViewModel.refreshDraftFolderWhenDraftArrives(etopScheduledDate) + getLong(DraftsActionsWorker.BIGGEST_SCHEDULED_MESSAGE_ETOP_KEY, 0).takeIf { it > 0 }?.let { scheduledMessageEtop -> + mainViewModel.refreshDraftFolderWhenDraftArrives(scheduledMessageEtop) } } diff --git a/app/src/main/java/com/infomaniak/mail/ui/MainViewModel.kt b/app/src/main/java/com/infomaniak/mail/ui/MainViewModel.kt index 63c5c906bf..fc05016380 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/MainViewModel.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/MainViewModel.kt @@ -1208,13 +1208,13 @@ class MainViewModel @Inject constructor( selectedThreadsLiveData.value = selectedThreads } - fun refreshDraftFolderWhenDraftArrives(etopScheduledDate: Long) = viewModelScope.launch(ioCoroutineContext) { + fun refreshDraftFolderWhenDraftArrives(scheduledMessageEtop: Long) = viewModelScope.launch(ioCoroutineContext) { val folder = folderController.getFolder(FolderRole.DRAFT) if (folder?.cursor != null) { val timeNow = Date().time - val delay = REFRESH_DELAY + max(etopScheduledDate - timeNow, 0L) + val delay = REFRESH_DELAY + max(scheduledMessageEtop - timeNow, 0L) delay(min(delay, MAX_REFRESH_DELAY)) refreshController.refreshThreads( diff --git a/app/src/main/java/com/infomaniak/mail/ui/bottomSheetDialogs/ScheduleSendBottomSheetDialog.kt b/app/src/main/java/com/infomaniak/mail/ui/bottomSheetDialogs/ScheduleSendBottomSheetDialog.kt index b4fe4be728..0cc83213a7 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/bottomSheetDialogs/ScheduleSendBottomSheetDialog.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/bottomSheetDialogs/ScheduleSendBottomSheetDialog.kt @@ -96,12 +96,12 @@ class ScheduleSendBottomSheetDialog @Inject constructor() : ActionsBottomSheetDi if (navigationArgs.isAlreadyScheduled) { if (draftResource != null && lastSelectedScheduleEpoch != 0L) { trackScheduleSendEvent(matomoName) - setBackNavigationResult(SCHEDULE_SEND_RESULT, lastSelectedScheduleEpoch) + setBackNavigationResult(SCHEDULE_DRAFT_RESULT, lastSelectedScheduleEpoch) } } else { if (lastSelectedScheduleEpoch != 0L) { trackScheduleSendEvent(matomoName) - setBackNavigationResult(SCHEDULE_SEND_RESULT, lastSelectedScheduleEpoch) + setBackNavigationResult(SCHEDULE_DRAFT_RESULT, lastSelectedScheduleEpoch) } } } @@ -126,12 +126,12 @@ class ScheduleSendBottomSheetDialog @Inject constructor() : ActionsBottomSheetDi setIconResource(schedule.scheduleIconRes) setOnClickListener { trackScheduleSendEvent(schedule.matomoValue) - setBackNavigationResult(SCHEDULE_SEND_RESULT, schedule.date().time) + setBackNavigationResult(SCHEDULE_DRAFT_RESULT, schedule.date().time) } } companion object { - const val SCHEDULE_SEND_RESULT = "schedule_send_result" + const val SCHEDULE_DRAFT_RESULT = "schedule_draft_result" const val OPEN_DATE_AND_TIME_SCHEDULE_DIALOG = "open_date_and_time_schedule_dialog" } } diff --git a/app/src/main/java/com/infomaniak/mail/ui/main/thread/ThreadFragment.kt b/app/src/main/java/com/infomaniak/mail/ui/main/thread/ThreadFragment.kt index d758b72fe2..d6820d6f91 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/main/thread/ThreadFragment.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/main/thread/ThreadFragment.kt @@ -69,7 +69,7 @@ import com.infomaniak.mail.databinding.FragmentThreadBinding import com.infomaniak.mail.ui.MainViewModel import com.infomaniak.mail.ui.alertDialogs.* import com.infomaniak.mail.ui.bottomSheetDialogs.ScheduleSendBottomSheetDialog.Companion.OPEN_DATE_AND_TIME_SCHEDULE_DIALOG -import com.infomaniak.mail.ui.bottomSheetDialogs.ScheduleSendBottomSheetDialog.Companion.SCHEDULE_SEND_RESULT +import com.infomaniak.mail.ui.bottomSheetDialogs.ScheduleSendBottomSheetDialog.Companion.SCHEDULE_DRAFT_RESULT import com.infomaniak.mail.ui.bottomSheetDialogs.ScheduleSendBottomSheetDialogArgs import com.infomaniak.mail.ui.main.SnackbarManager import com.infomaniak.mail.ui.main.folder.TwoPaneFragment @@ -561,7 +561,7 @@ class ThreadFragment : Fragment() { ) } - getBackNavigationResult(SCHEDULE_SEND_RESULT) { selectedScheduleEpoch: Long -> + getBackNavigationResult(SCHEDULE_DRAFT_RESULT) { selectedScheduleEpoch: Long -> mainViewModel.rescheduleDraft(Date(selectedScheduleEpoch)) } } diff --git a/app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageActivity.kt b/app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageActivity.kt index ffb94726b7..04e92211a4 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageActivity.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageActivity.kt @@ -137,7 +137,7 @@ class NewMessageActivity : BaseActivity() { private fun startWorker() { draftsActionsWorkerScheduler.scheduleWork( draftLocalUuid = newMessageViewModel.draftLocalUuid(), - scheduleDate = newMessageViewModel.scheduleDate, + scheduleDate = newMessageViewModel.scheduledDraftDate, ) } diff --git a/app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageFragment.kt b/app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageFragment.kt index 2a1825b378..91ccb4a173 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageFragment.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageFragment.kt @@ -65,7 +65,7 @@ import com.infomaniak.mail.ui.alertDialogs.DescriptionAlertDialog import com.infomaniak.mail.ui.alertDialogs.InformationAlertDialog import com.infomaniak.mail.ui.alertDialogs.SelectDateAndTimeForScheduledDraftDialog import com.infomaniak.mail.ui.bottomSheetDialogs.ScheduleSendBottomSheetDialog.Companion.OPEN_DATE_AND_TIME_SCHEDULE_DIALOG -import com.infomaniak.mail.ui.bottomSheetDialogs.ScheduleSendBottomSheetDialog.Companion.SCHEDULE_SEND_RESULT +import com.infomaniak.mail.ui.bottomSheetDialogs.ScheduleSendBottomSheetDialog.Companion.SCHEDULE_DRAFT_RESULT import com.infomaniak.mail.ui.bottomSheetDialogs.ScheduleSendBottomSheetDialogArgs import com.infomaniak.mail.ui.main.SnackbarManager import com.infomaniak.mail.ui.main.thread.AttachmentAdapter @@ -242,7 +242,7 @@ class NewMessageFragment : Fragment() { ) } - getBackNavigationResult(SCHEDULE_SEND_RESULT) { selectedScheduleEpoch: Long -> + getBackNavigationResult(SCHEDULE_DRAFT_RESULT) { selectedScheduleEpoch: Long -> newMessageViewModel.setScheduleDate(Date(selectedScheduleEpoch)) tryToSendEmail(scheduled = true) } @@ -698,7 +698,7 @@ class NewMessageFragment : Fragment() { private fun observeScheduledDraftsFeatureFlagUpdates() { newMessageViewModel.currentMailboxLive.observeNotNull(viewLifecycleOwner) { mailbox -> - val isScheduledDraftsEnabled = mailbox.featureFlags.contains(FeatureFlag.SCHEDULE_SEND_DRAFT) + val isScheduledDraftsEnabled = mailbox.featureFlags.contains(FeatureFlag.SCHEDULE_DRAFTS) binding.scheduleSendButton.isVisible = isScheduledDraftsEnabled } } diff --git a/app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageViewModel.kt b/app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageViewModel.kt index 949f3c8b2c..47192e847f 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageViewModel.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/newMessage/NewMessageViewModel.kt @@ -138,7 +138,7 @@ class NewMessageViewModel @Inject constructor( var draftAction = DraftAction.SAVE var signaturesCount = 0 private var isNewMessage = false - var scheduleDate: Date? = null + var scheduledDraftDate: Date? = null private var snapshot: DraftSnapshot? = null @@ -154,7 +154,6 @@ class NewMessageViewModel @Inject constructor( val editorAction = SingleLiveEvent>() // Needs to trigger every time the Fragment is recreated val initResult = MutableLiveData() - val scheduleMessageTrigger = SingleLiveEvent() private val _isShimmering = MutableStateFlow(true) val isShimmering: StateFlow = _isShimmering @@ -196,7 +195,6 @@ class NewMessageViewModel @Inject constructor( fun draftLocalUuid() = draftLocalUuid fun draftMode() = draftMode fun shouldLoadDistantResources() = shouldLoadDistantResources - fun triggerScheduleMessage() = scheduleMessageTrigger.postValue(Unit) fun initDraftAndViewModel(intent: Intent): LiveData = liveData(ioCoroutineContext) { @@ -850,21 +848,21 @@ class NewMessageViewModel @Inject constructor( }.onFailure(Sentry::captureException) } - fun setScheduleDate(scheduleDate: Date) = viewModelScope.launch(ioDispatcher) { + fun setScheduleDate(date: Date) = viewModelScope.launch(ioDispatcher) { val localUuid = draftLocalUuid ?: return@launch - this@NewMessageViewModel.scheduleDate = scheduleDate + scheduledDraftDate = date draftAction = DraftAction.SCHEDULE mailboxContentRealm().write { DraftController.getDraft(localUuid, realm = this)?.also { draft -> - draft.scheduleDate = this@NewMessageViewModel.scheduleDate?.format(FORMAT_SCHEDULE_MAIL) + draft.scheduleDate = scheduledDraftDate?.format(FORMAT_SCHEDULE_MAIL) } } } fun resetScheduledDate() = viewModelScope.launch(ioDispatcher) { val localUuid = draftLocalUuid ?: return@launch - scheduleDate = null + scheduledDraftDate = null draftAction = DraftAction.SAVE mailboxContentRealm().write { diff --git a/app/src/main/java/com/infomaniak/mail/utils/extensions/Extensions.kt b/app/src/main/java/com/infomaniak/mail/utils/extensions/Extensions.kt index f4bcff7a9f..4a3dfe1ac3 100644 --- a/app/src/main/java/com/infomaniak/mail/utils/extensions/Extensions.kt +++ b/app/src/main/java/com/infomaniak/mail/utils/extensions/Extensions.kt @@ -347,7 +347,7 @@ private tailrec fun formatFolderWithAllChildren( /* * There are two types of folders: * - user's folders (with or without a role) - * - hidden IK folders (scheduled drafts, snoozed, etc…) + * - hidden IK folders (ScheduledDrafts, Snoozed, etc…) * * We want to display the user's folders, and also the IK folders for which we handle the role. * IK folders where we don't handle the role are dismissed. diff --git a/app/src/main/java/com/infomaniak/mail/workers/DraftsActionsWorker.kt b/app/src/main/java/com/infomaniak/mail/workers/DraftsActionsWorker.kt index 15cdfa91ab..dbee5cf663 100644 --- a/app/src/main/java/com/infomaniak/mail/workers/DraftsActionsWorker.kt +++ b/app/src/main/java/com/infomaniak/mail/workers/DraftsActionsWorker.kt @@ -90,8 +90,10 @@ class DraftsActionsWorker @AssistedInject constructor( private lateinit var userApiToken: String private var isSnackbarFeedbackNeeded: Boolean = false - private var scheduleDate: Long? = null - private var scheduleAction: String? = null + //region Scheduled Drafts + private var scheduledDraftDate: Long? = null + private var scheduledDraftAction: String? = null + //endregion private val dateFormatWithTimezone by lazy { SimpleDateFormat(FORMAT_DATE_WITH_TIMEZONE, Locale.ROOT) } @@ -105,8 +107,8 @@ class DraftsActionsWorker @AssistedInject constructor( mailboxId = inputData.getIntOrNull(MAILBOX_ID_KEY) ?: return@withContext Result.failure() draftLocalUuid = inputData.getString(DRAFT_LOCAL_UUID_KEY) - scheduleDate = inputData.getLongOrNull(SCHEDULE_DATE_KEY) - scheduleAction = inputData.getString(SCHEDULE_ACTION_KEY) + scheduledDraftDate = inputData.getLongOrNull(SCHEDULE_DATE_KEY) + scheduledDraftAction = inputData.getString(SCHEDULE_ACTION_KEY) userApiToken = AccountUtils.getUserById(userId)?.apiToken?.accessToken ?: return@withContext Result.failure() mailbox = mailboxController.getMailbox(userId, mailboxId) ?: return@withContext Result.failure() @@ -137,7 +139,7 @@ class DraftsActionsWorker @AssistedInject constructor( // List containing the callback function to update/delete drafts in Realm // We keep these Realm changes in a List to execute them all in a unique Realm transaction at the end of the worker val realmActionsOnDraft = mutableListOf<(MutableRealm) -> Unit>() - val etopScheduledDates = mutableListOf() + val scheduledMessageEtops = mutableListOf() var trackedDraftErrorMessageResId: Int? = null var remoteUuidOfTrackedDraft: String? = null var trackedDraftAction: DraftAction? = null @@ -162,10 +164,10 @@ class DraftsActionsWorker @AssistedInject constructor( remoteUuidOfTrackedDraft = savedDraftUuid isTrackedDraftSuccess = true } - etopScheduledDate?.let(etopScheduledDates::add) + scheduledMessageEtop?.let(scheduledMessageEtops::add) realmActionOnDraft?.let(realmActionsOnDraft::add) - this@DraftsActionsWorker.scheduleAction = scheduleAction + scheduledDraftAction = scheduleAction } else if (isTargetDraft) { trackedDraftErrorMessageResId = errorMessageResId!! isTrackedDraftSuccess = false @@ -219,7 +221,7 @@ class DraftsActionsWorker @AssistedInject constructor( showDraftErrorNotification(isTrackedDraftSuccess, trackedDraftErrorMessageResId, trackedDraftAction) return computeResult( - etopScheduledDates, + scheduledMessageEtops, haveAllDraftsSucceeded, isTrackedDraftSuccess, remoteUuidOfTrackedDraft, @@ -260,7 +262,7 @@ class DraftsActionsWorker @AssistedInject constructor( } private fun computeResult( - etopScheduledDates: MutableList, + scheduledMessagesEtops: MutableList, haveAllDraftsSucceeded: Boolean, isTrackedDraftSuccess: Boolean?, remoteUuidOfTrackedDraft: String?, @@ -268,7 +270,7 @@ class DraftsActionsWorker @AssistedInject constructor( trackedDraftErrorMessageResId: Int?, ): Result { - val biggestEtopScheduledDate = etopScheduledDates.mapNotNull { dateFormatWithTimezone.parse(it)?.time }.maxOrNull() + val biggestScheduleMessageEtop = scheduledMessagesEtops.mapNotNull { dateFormatWithTimezone.parse(it)?.time }.maxOrNull() return if (haveAllDraftsSucceeded || isTrackedDraftSuccess == true) { val outputData = if (isSnackbarFeedbackNeeded) { @@ -276,10 +278,10 @@ class DraftsActionsWorker @AssistedInject constructor( REMOTE_DRAFT_UUID_KEY to draftLocalUuid?.let { remoteUuidOfTrackedDraft }, ASSOCIATED_MAILBOX_UUID_KEY to draftLocalUuid?.let { mailbox.uuid }, RESULT_DRAFT_ACTION_KEY to draftLocalUuid?.let { trackedDraftAction?.name }, - BIGGEST_ETOP_SCHEDULED_DATE_KEY to biggestEtopScheduledDate, + BIGGEST_SCHEDULED_MESSAGE_ETOP_KEY to biggestScheduleMessageEtop, RESULT_USER_ID_KEY to userId, - SCHEDULE_DATE_KEY to scheduleDate, - SCHEDULE_ACTION_KEY to scheduleAction, + SCHEDULE_DATE_KEY to scheduledDraftDate, + SCHEDULE_ACTION_KEY to scheduledDraftAction, ) } else { Data.EMPTY @@ -289,7 +291,7 @@ class DraftsActionsWorker @AssistedInject constructor( val outputData = if (isSnackbarFeedbackNeeded) { workDataOf( ERROR_MESSAGE_RESID_KEY to trackedDraftErrorMessageResId, - BIGGEST_ETOP_SCHEDULED_DATE_KEY to biggestEtopScheduledDate, + BIGGEST_SCHEDULED_MESSAGE_ETOP_KEY to biggestScheduleMessageEtop, RESULT_USER_ID_KEY to userId, ) } else { @@ -301,7 +303,7 @@ class DraftsActionsWorker @AssistedInject constructor( data class DraftActionResult( val realmActionOnDraft: ((MutableRealm) -> Unit)?, - val etopScheduledDate: String?, + val scheduledMessageEtop: String?, val scheduleAction: String?, val errorMessageResId: Int?, val savedDraftUuid: String?, @@ -311,8 +313,8 @@ class DraftsActionsWorker @AssistedInject constructor( private suspend fun executeDraftAction(draft: Draft, mailboxUuid: String, isFirstTime: Boolean = true): DraftActionResult { var realmActionOnDraft: ((MutableRealm) -> Unit)? = null - var etopScheduledDate: String? = null - var scheduleAction: String? = null + var scheduledMessageEtop: String? = null + var scheduleDraftAction: String? = null var savedDraftUuid: String? = null SentryDebug.addDraftBreadcrumbs(draft, step = "executeDraftAction (action = ${draft.action?.name.toString()})") @@ -331,7 +333,7 @@ class DraftsActionsWorker @AssistedInject constructor( return DraftActionResult( realmActionOnDraft = null, - etopScheduledDate = null, + scheduledMessageEtop = null, scheduleAction = null, errorMessageResId = R.string.errorCorruptAttachment, savedDraftUuid = null, @@ -348,7 +350,7 @@ class DraftsActionsWorker @AssistedInject constructor( action = null } } - etopScheduledDate = dateFormatWithTimezone.format(Date()) + scheduledMessageEtop = dateFormatWithTimezone.format(Date()) savedDraftUuid = data.draftRemoteUuid } ?: run { retryWithNewIdentityOrThrow(draft, mailboxUuid, isFirstTime) @@ -358,7 +360,7 @@ class DraftsActionsWorker @AssistedInject constructor( suspend fun executeSendAction() = with(ApiRepository.sendDraft(mailboxUuid, draft, okHttpClient)) { when { isSuccess() -> { - etopScheduledDate = data?.etopScheduledDate + scheduledMessageEtop = data?.scheduledMessageEtop realmActionOnDraft = deleteDraftCallback(draft) } error?.exception is SerializationException -> { @@ -378,7 +380,7 @@ class DraftsActionsWorker @AssistedInject constructor( suspend fun executeScheduleAction() = with(ApiRepository.scheduleDraft(mailboxUuid, draft, okHttpClient)) { when { isSuccess() -> { - scheduleAction = data?.scheduleAction + scheduleDraftAction = data?.scheduleAction realmActionOnDraft = deleteDraftCallback(draft) refreshScheduledDraftsFolder() } @@ -405,8 +407,8 @@ class DraftsActionsWorker @AssistedInject constructor( return DraftActionResult( realmActionOnDraft = realmActionOnDraft, - etopScheduledDate = etopScheduledDate, - scheduleAction = scheduleAction, + scheduledMessageEtop = scheduledMessageEtop, + scheduleAction = scheduleDraftAction, errorMessageResId = null, savedDraftUuid = savedDraftUuid, isSuccess = true, @@ -499,7 +501,7 @@ class DraftsActionsWorker @AssistedInject constructor( const val REMOTE_DRAFT_UUID_KEY = "remoteDraftUuidKey" const val ASSOCIATED_MAILBOX_UUID_KEY = "associatedMailboxUuidKey" const val RESULT_DRAFT_ACTION_KEY = "resultDraftActionKey" - const val BIGGEST_ETOP_SCHEDULED_DATE_KEY = "biggestEtopScheduledDateKey" + const val BIGGEST_SCHEDULED_MESSAGE_ETOP_KEY = "biggestScheduledMessageEtopKey" const val RESULT_USER_ID_KEY = "resultUserIdKey" const val SCHEDULE_DATE_KEY = "scheduleDateKey" const val SCHEDULE_ACTION_KEY = "scheduleActionKey"