diff --git a/app/src/main/java/com/infomaniak/mail/data/cache/mailboxContent/FolderController.kt b/app/src/main/java/com/infomaniak/mail/data/cache/mailboxContent/FolderController.kt index 2e86ae9276..27eb00ac2e 100644 --- a/app/src/main/java/com/infomaniak/mail/data/cache/mailboxContent/FolderController.kt +++ b/app/src/main/java/com/infomaniak/mail/data/cache/mailboxContent/FolderController.kt @@ -47,7 +47,7 @@ class FolderController @Inject constructor( //region Get data fun getMenuDrawerDefaultFoldersAsync(): Flow> { return getFoldersQuery( - mailboxContentRealm(), + realm = mailboxContentRealm(), withoutTypes = listOf(FoldersType.CUSTOM), withoutChildren = true, ).asFlow() @@ -55,7 +55,7 @@ class FolderController @Inject constructor( fun getMenuDrawerCustomFoldersAsync(): Flow> { return getFoldersQuery( - mailboxContentRealm(), + realm = mailboxContentRealm(), withoutTypes = listOf(FoldersType.DEFAULT), withoutChildren = true, ).asFlow() @@ -67,7 +67,7 @@ class FolderController @Inject constructor( fun getMoveFolders(): RealmResults { return getFoldersQuery( - mailboxContentRealm(), + realm = mailboxContentRealm(), withoutTypes = listOf(FoldersType.SCHEDULED_DRAFTS, FoldersType.DRAFT), withoutChildren = true, ).find() 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 6b26551a3e..4887e18b88 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 @@ -120,7 +120,7 @@ class Message : RealmObject { // ------------- !IMPORTANT! ------------- // Every field that is added in this Transient region should be declared in 'initLocalValue()' too // to avoid loosing data when updating from API. - // If the Field is a "heavy data" (i.e. an embedded object), it should also be added in 'keepHeavyData()' + // If the Field is a "heavy data" (i.e. an embedded object), it should also be added in 'keepHeavyData()'. @Transient @PersistedName("isFullyDownloaded") 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 869f07d423..b4777daa6b 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/MainActivity.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/MainActivity.kt @@ -107,21 +107,16 @@ class MainActivity : BaseActivity() { private val showSendingSnackbarTimer: CountDownTimer by lazy { Utils.createRefreshTimer(milliseconds = 1_000L) { - snackbarManager.setValue( - getString(if (draftAction == DraftAction.SCHEDULE) R.string.snackbarScheduling else R.string.snackbarEmailSending) - ) + val resId = if (draftAction == DraftAction.SCHEDULE) R.string.snackbarScheduling else R.string.snackbarEmailSending + snackbarManager.setValue(getString(resId)) } } private val newMessageActivityResultLauncher = registerForActivityResult(StartActivityForResult()) { result -> draftAction = result.data?.getStringExtra(DRAFT_ACTION_KEY)?.let(DraftAction::valueOf) - if (draftAction == DraftAction.SEND) { - showEasterXMas() - showSendingSnackbarTimer.start() - } else if (draftAction == DraftAction.SCHEDULE) { - showSendingSnackbarTimer.start() - } + if (draftAction == DraftAction.SEND) showEasterXMas() + if (draftAction == DraftAction.SEND || draftAction == DraftAction.SCHEDULE) showSendingSnackbarTimer.start() } private val syncAutoConfigActivityResultLauncher = registerForActivityResult(StartActivityForResult()) { result -> @@ -290,13 +285,14 @@ class MainActivity : BaseActivity() { showSavedDraftSnackbar(associatedMailboxUuid, remoteDraftUuid) } } - DraftAction.SEND -> showSentDraftSnackbar() + DraftAction.SEND -> { + showSentDraftSnackbar() + } DraftAction.SCHEDULE -> { val scheduleDate = getLongOrNull(DraftsActionsWorker.SCHEDULE_DATE_KEY) val scheduleAction = getString(DraftsActionsWorker.SCHEDULE_ACTION_KEY) - if (scheduleDate != null && scheduleAction != null) { - showSentScheduleDraftSnackbar(scheduleDate = Date(scheduleDate), scheduleAction) + showScheduledDraftSnackbar(scheduleDate = Date(scheduleDate), scheduleAction = scheduleAction) } } } @@ -330,7 +326,7 @@ class MainActivity : BaseActivity() { } // Still display the Snackbar even if it took three times 10 seconds of timeout to succeed - private fun showSentScheduleDraftSnackbar(scheduleDate: Date, scheduleAction: String) { + private fun showScheduledDraftSnackbar(scheduleDate: Date, scheduleAction: String) { showSendingSnackbarTimer.cancel() val dateString = mostDetailedDate( @@ -342,7 +338,7 @@ class MainActivity : BaseActivity() { snackbarManager.setValue( title = String.format(getString(R.string.snackbarScheduleSaved), dateString), buttonTitle = RCore.string.buttonCancel, - customBehavior = { mainViewModel.deleteScheduleDraft(scheduleAction) }, + customBehavior = { mainViewModel.deleteScheduledDraft(scheduleAction) }, ) } 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 71d821ce73..9925c033d7 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/MainViewModel.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/MainViewModel.kt @@ -608,7 +608,7 @@ class MainViewModel @Inject constructor( showDraftDeletedSnackbar(apiResponse) } - fun deleteScheduleDraft(scheduleAction: String) = viewModelScope.launch(ioCoroutineContext) { + fun deleteScheduledDraft(scheduleAction: String) = viewModelScope.launch(ioCoroutineContext) { val mailbox = currentMailbox.value!! val apiResponse = ApiRepository.deleteScheduledDraft(scheduleAction) diff --git a/app/src/main/java/com/infomaniak/mail/ui/main/thread/MessageAlertView.kt b/app/src/main/java/com/infomaniak/mail/ui/main/thread/MessageAlertView.kt index be768f948a..77c9c20809 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/main/thread/MessageAlertView.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/main/thread/MessageAlertView.kt @@ -51,8 +51,8 @@ class MessageAlertView @JvmOverloads constructor( } } - fun setDescription(text: String) = with(binding) { - description.text = text + fun setDescription(text: String) { + binding.description.text = text } fun onAction1(listener: OnClickListener) { diff --git a/app/src/main/java/com/infomaniak/mail/ui/main/thread/ThreadAdapter.kt b/app/src/main/java/com/infomaniak/mail/ui/main/thread/ThreadAdapter.kt index 530787fd12..6014091150 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/main/thread/ThreadAdapter.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/main/thread/ThreadAdapter.kt @@ -353,14 +353,13 @@ class ThreadAdapter( val messageDate = message.date.toDate() if (message.isScheduledDraft) { - scheduleSendIcon.isVisible = true - scheduleAlert.setDescription( context.getString( R.string.scheduledEmailHeader, message.date.toDate().format(FORMAT_DATE_DAY_FULL_MONTH_WITH_TIME), - ) + ), ) + scheduleSendIcon.isVisible = true alertsGroup.isVisible = true scheduleAlert.isVisible = true } diff --git a/app/src/main/java/com/infomaniak/mail/workers/BaseCoroutineWorker.kt b/app/src/main/java/com/infomaniak/mail/workers/BaseCoroutineWorker.kt index f4ae94377f..c9d2e89985 100644 --- a/app/src/main/java/com/infomaniak/mail/workers/BaseCoroutineWorker.kt +++ b/app/src/main/java/com/infomaniak/mail/workers/BaseCoroutineWorker.kt @@ -55,6 +55,6 @@ abstract class BaseCoroutineWorker(appContext: Context, params: WorkerParameters companion object { private const val MAX_RETRIES = 3 - fun Data.getLongOrNull(key: String) = getLong(key, 0).run { if (this == 0L) null else this } + fun Data.getLongOrNull(key: String) = getLong(key, 0L).run { if (this == 0L) null else this } } }