diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt index 4955c6ad00..7f16882e0d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt @@ -22,17 +22,17 @@ fun Preference.invert(): Boolean = getOrDefault().let { set(!it); !it } private class DateFormatConverter : Preference.Adapter { override fun get(key: String, preferences: SharedPreferences): DateFormat { - var dateFormat = preferences.getString(Keys.dateFormat, "") + val dateFormat = preferences.getString(Keys.dateFormat, "")!! if (dateFormat != "") { - return SimpleDateFormat(dateFormat) + return SimpleDateFormat(dateFormat, Locale.getDefault()) } return DateFormat.getDateInstance(DateFormat.SHORT) } override fun set(key: String, value: DateFormat, editor: SharedPreferences.Editor) { - TODO("not implemented") + // No-op } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoController.kt index 0459f1ef3b..235303e965 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoController.kt @@ -66,7 +66,9 @@ class MangaInfoController : NucleusController(), */ private val preferences: PreferencesHelper by injectLazy() - val dateFormat: DateFormat = preferences.dateFormat().getOrDefault() + private val dateFormat: DateFormat by lazy { + preferences.dateFormat().getOrDefault() + } init { setHasOptionsMenu(true) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/recently_read/RecentlyReadHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/recently_read/RecentlyReadHolder.kt index 9ddda4967c..f9ec9de94b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/recently_read/RecentlyReadHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/recently_read/RecentlyReadHolder.kt @@ -6,8 +6,8 @@ import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.database.models.MangaChapterHistory import eu.kanade.tachiyomi.data.glide.GlideApp import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder +import eu.kanade.tachiyomi.util.toTimestampString import kotlinx.android.synthetic.main.recently_read_item.* -import java.text.DateFormat import java.util.Date /** @@ -55,10 +55,8 @@ class RecentlyReadHolder( manga_source.text = itemView.context.getString(R.string.recent_manga_source) .format(adapter.sourceManager.getOrStub(manga.source).toString(), formattedNumber) - val date = adapter.dateFormat.format(Date(history.last_read)) - val time = DateFormat.getTimeInstance(DateFormat.SHORT).format(Date(history.last_read)) // Set last read timestamp title - last_read.text = "$date $time" + last_read.text = Date(history.last_read).toTimestampString(adapter.dateFormat) // Set cover GlideApp.with(itemView.context).clear(cover) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAboutController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAboutController.kt index 455206f8ab..8b4fa56435 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAboutController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAboutController.kt @@ -4,8 +4,8 @@ import android.app.Dialog import android.content.Intent import android.net.Uri import android.os.Bundle -import androidx.preference.PreferenceScreen import android.view.View +import androidx.preference.PreferenceScreen import com.afollestad.materialdialogs.MaterialDialog import eu.kanade.tachiyomi.BuildConfig import eu.kanade.tachiyomi.R @@ -17,6 +17,7 @@ import eu.kanade.tachiyomi.data.updater.UpdaterJob import eu.kanade.tachiyomi.data.updater.UpdaterService import eu.kanade.tachiyomi.ui.base.controller.DialogController import eu.kanade.tachiyomi.ui.main.ChangelogDialogController +import eu.kanade.tachiyomi.util.toTimestampString import eu.kanade.tachiyomi.util.toast import rx.Subscription import rx.android.schedulers.AndroidSchedulers @@ -26,7 +27,8 @@ import uy.kohesive.injekt.injectLazy import java.text.DateFormat import java.text.ParseException import java.text.SimpleDateFormat -import java.util.* +import java.util.Locale +import java.util.TimeZone import eu.kanade.tachiyomi.data.preference.PreferenceKeys as Keys class SettingsAboutController : SettingsController() { @@ -36,10 +38,9 @@ class SettingsAboutController : SettingsController() { */ private val updateChecker by lazy { UpdateChecker.getUpdateChecker() } - private val userPreferences: PreferencesHelper by injectLazy() - val dateFormat: DateFormat = userPreferences.dateFormat().getOrDefault() + private val dateFormat: DateFormat = userPreferences.dateFormat().getOrDefault() /** * The subscribtion service of the obtained release object @@ -192,9 +193,7 @@ class SettingsAboutController : SettingsController() { DateFormat.MEDIUM, DateFormat.SHORT, Locale.getDefault()) outputDf.timeZone = TimeZone.getDefault() - val date = dateFormat.format(buildTime) - val time = DateFormat.getTimeInstance(DateFormat.SHORT).format(buildTime) - return "$date $time" + return buildTime.toTimestampString(dateFormat) } catch (e: ParseException) { return BuildConfig.BUILD_TIME } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralController.kt index 096875bca3..e1035fe035 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralController.kt @@ -14,12 +14,12 @@ class SettingsGeneralController : SettingsController() { key = Keys.lang titleRes = R.string.pref_language entryValues = arrayOf("", "ar", "bg", "bn", "ca", "cs", "de", "el", "en-US", "en-GB", - "es", "fr", "hi", "hu", "in", "it", "ja", "ko", "lv", "ms", "nb-rNO", "nl", "pl", "pt", - "pt-BR", "ro", "ru", "sc", "sr", "sv", "th", "tl", "tr", "uk", "vi", "zh-rCN") + "es", "fr", "hi", "hu", "in", "it", "ja", "ko", "lv", "ms", "nb-rNO", "nl", "pl", "pt", + "pt-BR", "ro", "ru", "sc", "sr", "sv", "th", "tl", "tr", "uk", "vi", "zh-rCN") entries = entryValues.map { value -> val locale = LocaleHelper.getLocaleFromString(value.toString()) - locale?.getDisplayName(locale)?.capitalize() ?: - context.getString(R.string.system_default) + locale?.getDisplayName(locale)?.capitalize() + ?: context.getString(R.string.system_default) }.toTypedArray() defaultValue = "" summary = "%s" @@ -34,9 +34,9 @@ class SettingsGeneralController : SettingsController() { } } listPreference { - key= Keys.dateFormat + key = Keys.dateFormat titleRes = R.string.pref_date_format - entryValues= arrayOf("", "MM/dd/yy", "dd/MM/yy", "yyyy-MM-dd") + entryValues = arrayOf("", "MM/dd/yy", "dd/MM/yy", "yyyy-MM-dd") entries = entryValues.map { value -> if (value == "") { context.getString(R.string.system_default) @@ -45,7 +45,7 @@ class SettingsGeneralController : SettingsController() { } }.toTypedArray() defaultValue = "" - summary= "%s" + summary = "%s" } intListPreference { key = Keys.theme diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/DateExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/DateExtensions.kt new file mode 100644 index 0000000000..aaef304d7b --- /dev/null +++ b/app/src/main/java/eu/kanade/tachiyomi/util/DateExtensions.kt @@ -0,0 +1,10 @@ +package eu.kanade.tachiyomi.util + +import java.text.DateFormat +import java.util.Date + +fun Date.toTimestampString(dateFormatter: DateFormat): String { + val date = dateFormatter.format(this) + val time = DateFormat.getTimeInstance(DateFormat.SHORT).format(this) + return "$date $time" +}