diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/more/stats/details/StatsDetailsPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/more/stats/details/StatsDetailsPresenter.kt index 9424b7fed9..76578e6597 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/more/stats/details/StatsDetailsPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/more/stats/details/StatsDetailsPresenter.kt @@ -1,6 +1,7 @@ package eu.kanade.tachiyomi.ui.more.stats.details import android.graphics.drawable.Drawable +import android.text.format.DateUtils import androidx.annotation.DrawableRes import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.database.DatabaseHelper @@ -27,7 +28,6 @@ import eu.kanade.tachiyomi.util.system.roundToTwoDecimal import eu.kanade.tachiyomi.util.system.withUIContext import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get -import java.text.SimpleDateFormat import java.util.Calendar import java.util.Locale import java.util.concurrent.TimeUnit @@ -593,18 +593,24 @@ class StatsDetailsPresenter( } fun convertCalendarToLongString(calendar: Calendar): String { - val formatter = SimpleDateFormat("EEEE, MMMM dd", Locale.getDefault()) - return formatter.format(calendar.time) + val currentYear = Calendar.getInstance().get(Calendar.YEAR) + val showYear = calendar.get(Calendar.YEAR) != currentYear + val flagYear = if (showYear) DateUtils.FORMAT_ABBREV_MONTH else 0 + val flags = DateUtils.FORMAT_SHOW_DATE or DateUtils.FORMAT_SHOW_WEEKDAY or flagYear + return DateUtils.formatDateTime(context, calendar.timeInMillis, flags) } - fun convertCalendarToString(calendar: Calendar): String { - val formatter = SimpleDateFormat("MMMM dd", Locale.getDefault()) - return formatter.format(calendar.time) + fun convertCalendarToString(calendar: Calendar, showYear: Boolean): String { + val flagYear = if (showYear) DateUtils.FORMAT_ABBREV_MONTH or DateUtils.FORMAT_SHOW_YEAR else 0 + val flags = DateUtils.FORMAT_SHOW_DATE or flagYear + return DateUtils.formatDateTime(context, calendar.timeInMillis, flags) } fun getPeriodString(): String { - val startDateString = convertCalendarToString(startDate) - val endDateString = convertCalendarToString(endDate) + val currentYear = Calendar.getInstance().get(Calendar.YEAR) + val showYear = listOf(startDate, endDate).any { it.get(Calendar.YEAR) != currentYear } + val startDateString = convertCalendarToString(startDate, showYear) + val endDateString = convertCalendarToString(endDate, showYear) return "$startDateString - $endDateString" }