Skip to content

Commit

Permalink
feat: Display year date when the date is on another year
Browse files Browse the repository at this point in the history
  • Loading branch information
LunarX committed Feb 18, 2025
1 parent 7c024ed commit fd16e3d
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 9 deletions.
4 changes: 2 additions & 2 deletions app/src/main/java/com/infomaniak/mail/ui/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ import com.infomaniak.mail.utils.*
import com.infomaniak.mail.utils.UiUtils.progressivelyColorSystemBars
import com.infomaniak.mail.utils.Utils.Shortcuts
import com.infomaniak.mail.utils.Utils.openShortcutHelp
import com.infomaniak.mail.utils.date.DateFormatUtils.dayOfWeekDate
import com.infomaniak.mail.utils.date.MailDateFormatUtils.formatDayOfWeekAdaptiveYear
import com.infomaniak.mail.utils.extensions.isUserAlreadySynchronized
import com.infomaniak.mail.workers.DraftsActionsWorker
import dagger.hilt.android.AndroidEntryPoint
Expand Down Expand Up @@ -333,7 +333,7 @@ class MainActivity : BaseActivity() {
private fun showScheduledDraftSnackbar(scheduleDate: Date, unscheduleDraftUrl: String) {
showSendingSnackbarTimer.cancel()

val dateString = dayOfWeekDate(date = scheduleDate)
val dateString = formatDayOfWeekAdaptiveYear(scheduleDate)

snackbarManager.setValue(
title = String.format(getString(R.string.snackbarScheduleSaved), dateString),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ import com.infomaniak.mail.R
import com.infomaniak.mail.databinding.BottomSheetScheduleSendBinding
import com.infomaniak.mail.ui.alertDialogs.SelectDateAndTimeForScheduledDraftDialog.Companion.MIN_SCHEDULE_DELAY_MINUTES
import com.infomaniak.mail.ui.main.thread.actions.ActionItemView
import com.infomaniak.mail.utils.date.DateFormatUtils.dayOfWeekDate
import com.infomaniak.mail.utils.date.DateFormatUtils.dayOfWeekDateWithoutYear
import dagger.hilt.android.AndroidEntryPoint
import java.util.Date
import javax.inject.Inject
Expand Down Expand Up @@ -74,7 +74,7 @@ class ScheduleSendBottomSheetDialog @Inject constructor() : BottomSheetDialogFra
private fun computeLastScheduleItem() = with(binding) {
if (Date(lastSelectedScheduleEpoch).isAtLeastXMinutesInTheFuture(MIN_SCHEDULE_DELAY_MINUTES)) {
lastScheduleItem.isVisible = true
lastScheduleItem.setDescription(context.dayOfWeekDate(date = Date(lastSelectedScheduleEpoch)))
lastScheduleItem.setDescription(context.dayOfWeekDateWithoutYear(date = Date(lastSelectedScheduleEpoch)))
}
}

Expand Down Expand Up @@ -102,7 +102,7 @@ class ScheduleSendBottomSheetDialog @Inject constructor() : BottomSheetDialogFra

private fun createScheduleItem(schedule: Schedule): ActionItemView = ActionItemView(requireContext()).apply {
setTitle(schedule.scheduleTitleRes)
setDescription(context.dayOfWeekDate(date = schedule.date()))
setDescription(context.dayOfWeekDateWithoutYear(date = schedule.date()))
setIconResource(schedule.scheduleIconRes)
setOnClickListener {
trackScheduleSendEvent(schedule.matomoValue)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.ViewHolder
import androidx.viewbinding.ViewBinding
import com.infomaniak.lib.core.utils.FORMAT_DATE_DAY_FULL_MONTH_WITH_TIME
import com.infomaniak.lib.core.utils.FORMAT_DATE_DAY_FULL_MONTH_YEAR_WITH_TIME
import com.infomaniak.lib.core.utils.FormatterFileSize.formatShortFileSize
import com.infomaniak.lib.core.utils.context
import com.infomaniak.lib.core.utils.format
Expand All @@ -57,7 +57,6 @@ import com.infomaniak.mail.databinding.ItemMessageBinding
import com.infomaniak.mail.databinding.ItemSuperCollapsedBlockBinding
import com.infomaniak.mail.ui.main.thread.ThreadAdapter.ThreadAdapterViewHolder
import com.infomaniak.mail.utils.*
import com.infomaniak.mail.utils.date.MailDateFormatUtils.mailFormattedDate
import com.infomaniak.mail.utils.SharedUtils.Companion.createHtmlForPlainText
import com.infomaniak.mail.utils.UiUtils.getPrettyNameAndEmail
import com.infomaniak.mail.utils.Utils.TEXT_HTML
Expand All @@ -66,6 +65,7 @@ import com.infomaniak.mail.utils.Utils.runCatchingRealm
import com.infomaniak.mail.utils.WebViewUtils.Companion.setupThreadWebViewSettings
import com.infomaniak.mail.utils.WebViewUtils.Companion.toggleWebViewTheme
import com.infomaniak.mail.utils.date.DateFormatUtils.fullDateWithYear
import com.infomaniak.mail.utils.date.MailDateFormatUtils.mailFormattedDate
import com.infomaniak.mail.utils.extensions.*
import com.infomaniak.mail.utils.extensions.AttachmentExtensions.AttachmentIntentType
import io.sentry.Sentry
Expand Down Expand Up @@ -356,7 +356,7 @@ class ThreadAdapter(
scheduleAlert.setDescription(
context.getString(
R.string.scheduledEmailHeader,
message.date.toDate().format(FORMAT_DATE_DAY_FULL_MONTH_WITH_TIME),
message.date.toDate().format(FORMAT_DATE_DAY_FULL_MONTH_YEAR_WITH_TIME),
),
)
scheduleSendIcon.isVisible = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ package com.infomaniak.mail.utils.date
import android.content.Context
import android.text.format.DateFormat
import com.infomaniak.lib.core.utils.FORMAT_DATE_DAY_MONTH
import com.infomaniak.lib.core.utils.FORMAT_DATE_DAY_MONTH_YEAR
import com.infomaniak.lib.core.utils.format
import com.infomaniak.mail.R
import java.util.Date
Expand All @@ -38,7 +39,9 @@ object DateFormatUtils {

fun Context.fullDateWithYear(date: Date): String = formatDateTime(date, FORMAT_DATE_WITH_YEAR, localHourFormat())

fun Context.dayOfWeekDate(date: Date): String = formatDateTime(date, FORMAT_DATE_DAY_MONTH, localHourFormat())
fun Context.dayOfWeekDateWithoutYear(date: Date): String = formatDateTime(date, FORMAT_DATE_DAY_MONTH, localHourFormat())

fun Context.dayOfWeekDateWithYear(date: Date): String = formatDateTime(date, FORMAT_DATE_DAY_MONTH_YEAR, localHourFormat())

private fun Context.formatDateTime(date: Date, dateFormat: String, timeFormat: String) = getString(
R.string.messageDetailsDateAt,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ import android.content.Context
import android.os.Build
import com.infomaniak.lib.core.utils.*
import com.infomaniak.mail.R
import com.infomaniak.mail.utils.date.DateFormatUtils.dayOfWeekDateWithYear
import com.infomaniak.mail.utils.date.DateFormatUtils.dayOfWeekDateWithoutYear
import com.infomaniak.mail.utils.date.DateFormatUtils.formatTime
import com.infomaniak.mail.utils.date.DateFormatUtils.fullDateWithYear
import com.infomaniak.mail.utils.date.DateFormatUtils.fullDateWithoutYear
Expand Down Expand Up @@ -49,4 +51,9 @@ object MailDateFormatUtils {
format(FORMAT_DATE_DAY_FULL_MONTH_YEAR_WITH_TIME)
}
}

fun Context.formatDayOfWeekAdaptiveYear(date: Date): String = when {
date.isThisYear() -> dayOfWeekDateWithoutYear(date)
else -> dayOfWeekDateWithYear(date)
}
}

0 comments on commit fd16e3d

Please sign in to comment.