Displays the read duration dates in locale standard (#1406)

This commit is contained in:
nzoba 2022-11-11 20:53:17 +01:00 committed by GitHub
parent 3bac93df37
commit ba48c9820b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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"
}