Refactor use of Java.util.date to Java.time.*, to fix localized date issues. (#402)

* Add support for localdate based relative times

* Update History Screen to use new localdate based relative times

* Update Updates Screen to use new localdate based relative times

* Cleaned up date util classes

* Updated build time display

* Code cleanup

* Fixed crash in settings

* Updated Preferences item

* Worker Info works

* Fixed Tracker date display

* Code changes to pass detekt

(cherry picked from commit 7ff95e21babda98dd1b479912278d6029cd15f0d)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/history/HistoryScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/util/lang/DateExtensions.kt
This commit is contained in:
Maddie Witman
2024-02-16 06:09:00 -05:00
committed by Jobobby04
parent 1fe309f363
commit 6c6f09ac5a
23 changed files with 177 additions and 132 deletions
@@ -1,7 +1,6 @@
package exh.metadata
import java.text.SimpleDateFormat
import java.util.Locale
import java.time.format.DateTimeFormatter
import kotlin.math.ln
import kotlin.math.pow
@@ -55,5 +54,5 @@ object MetadataUtil {
"wip",
)
val EX_DATE_FORMAT = SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.US)
val EX_DATE_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")
}
@@ -12,7 +12,9 @@ import tachiyomi.i18n.MR
import tachiyomi.i18n.sy.SYMR
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import java.util.Date
import java.time.Instant
import java.time.ZoneId
import java.time.ZonedDateTime
@Serializable
class EHentaiSearchMetadata : RaisedSearchMetadata() {
@@ -99,7 +101,13 @@ class EHentaiSearchMetadata : RaisedSearchMetadata() {
getItem(title) { stringResource(MR.strings.title) },
getItem(altTitle) { stringResource(SYMR.strings.alt_title) },
getItem(genre) { stringResource(SYMR.strings.genre) },
getItem(datePosted, { MetadataUtil.EX_DATE_FORMAT.format(Date(it)) }) {
getItem(
datePosted,
{
MetadataUtil.EX_DATE_FORMAT
.format(ZonedDateTime.ofInstant(Instant.ofEpochMilli(it), ZoneId.systemDefault()))
},
) {
stringResource(SYMR.strings.date_posted)
},
getItem(parent) { stringResource(SYMR.strings.parent) },
@@ -114,9 +122,13 @@ class EHentaiSearchMetadata : RaisedSearchMetadata() {
getItem(ratingCount) { stringResource(SYMR.strings.total_ratings) },
getItem(averageRating) { stringResource(SYMR.strings.average_rating) },
getItem(aged) { stringResource(SYMR.strings.aged) },
getItem(lastUpdateCheck, { MetadataUtil.EX_DATE_FORMAT.format(Date(it)) }) {
stringResource(SYMR.strings.last_update_check)
},
getItem(
lastUpdateCheck,
{
MetadataUtil.EX_DATE_FORMAT
.format(ZonedDateTime.ofInstant(Instant.ofEpochMilli(it), ZoneId.systemDefault()))
},
) { stringResource(SYMR.strings.last_update_check) },
)
}
}
@@ -8,7 +8,9 @@ import kotlinx.serialization.Serializable
import tachiyomi.core.common.i18n.stringResource
import tachiyomi.i18n.MR
import tachiyomi.i18n.sy.SYMR
import java.util.Date
import java.time.Instant
import java.time.ZoneId
import java.time.ZonedDateTime
@Serializable
class NHentaiSearchMetadata : RaisedSearchMetadata() {
@@ -92,7 +94,13 @@ class NHentaiSearchMetadata : RaisedSearchMetadata() {
return with(context) {
listOfNotNull(
getItem(nhId) { stringResource(SYMR.strings.id) },
getItem(uploadDate, { MetadataUtil.EX_DATE_FORMAT.format(Date(it * 1000)) }) {
getItem(
uploadDate,
{
MetadataUtil.EX_DATE_FORMAT
.format(ZonedDateTime.ofInstant(Instant.ofEpochSecond(it), ZoneId.systemDefault()))
},
) {
stringResource(SYMR.strings.date_posted)
},
getItem(favoritesCount) { stringResource(SYMR.strings.total_favorites) },
@@ -11,7 +11,9 @@ import tachiyomi.core.common.i18n.stringResource
import tachiyomi.i18n.MR
import tachiyomi.i18n.sy.SYMR
import java.text.SimpleDateFormat
import java.util.Date
import java.time.Instant
import java.time.ZoneId
import java.time.ZonedDateTime
import java.util.Locale
@Serializable
@@ -73,7 +75,13 @@ class TsuminoSearchMetadata : RaisedSearchMetadata() {
getItem(tmId) { stringResource(SYMR.strings.id) },
getItem(title) { stringResource(MR.strings.title) },
getItem(uploader) { stringResource(SYMR.strings.uploader) },
getItem(uploadDate, { MetadataUtil.EX_DATE_FORMAT.format(Date(it)) }) {
getItem(
uploadDate,
{
MetadataUtil.EX_DATE_FORMAT
.format(ZonedDateTime.ofInstant(Instant.ofEpochMilli(it), ZoneId.systemDefault()))
},
) {
stringResource(SYMR.strings.date_posted)
},
getItem(length) { stringResource(SYMR.strings.page_count) },