Minor date format code cleanup

This commit is contained in:
arkon 2020-01-28 22:32:56 -05:00
parent aeacdad484
commit c707d4bfd8
6 changed files with 31 additions and 22 deletions

View File

@ -22,17 +22,17 @@ fun Preference<Boolean>.invert(): Boolean = getOrDefault().let { set(!it); !it }
private class DateFormatConverter : Preference.Adapter<DateFormat> { private class DateFormatConverter : Preference.Adapter<DateFormat> {
override fun get(key: String, preferences: SharedPreferences): DateFormat { override fun get(key: String, preferences: SharedPreferences): DateFormat {
var dateFormat = preferences.getString(Keys.dateFormat, "") val dateFormat = preferences.getString(Keys.dateFormat, "")!!
if (dateFormat != "") { if (dateFormat != "") {
return SimpleDateFormat(dateFormat) return SimpleDateFormat(dateFormat, Locale.getDefault())
} }
return DateFormat.getDateInstance(DateFormat.SHORT) return DateFormat.getDateInstance(DateFormat.SHORT)
} }
override fun set(key: String, value: DateFormat, editor: SharedPreferences.Editor) { override fun set(key: String, value: DateFormat, editor: SharedPreferences.Editor) {
TODO("not implemented") // No-op
} }
} }

View File

@ -66,7 +66,9 @@ class MangaInfoController : NucleusController<MangaInfoPresenter>(),
*/ */
private val preferences: PreferencesHelper by injectLazy() private val preferences: PreferencesHelper by injectLazy()
val dateFormat: DateFormat = preferences.dateFormat().getOrDefault() private val dateFormat: DateFormat by lazy {
preferences.dateFormat().getOrDefault()
}
init { init {
setHasOptionsMenu(true) setHasOptionsMenu(true)

View File

@ -6,8 +6,8 @@ import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.database.models.MangaChapterHistory import eu.kanade.tachiyomi.data.database.models.MangaChapterHistory
import eu.kanade.tachiyomi.data.glide.GlideApp import eu.kanade.tachiyomi.data.glide.GlideApp
import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder
import eu.kanade.tachiyomi.util.toTimestampString
import kotlinx.android.synthetic.main.recently_read_item.* import kotlinx.android.synthetic.main.recently_read_item.*
import java.text.DateFormat
import java.util.Date import java.util.Date
/** /**
@ -55,10 +55,8 @@ class RecentlyReadHolder(
manga_source.text = itemView.context.getString(R.string.recent_manga_source) manga_source.text = itemView.context.getString(R.string.recent_manga_source)
.format(adapter.sourceManager.getOrStub(manga.source).toString(), formattedNumber) .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 // Set last read timestamp title
last_read.text = "$date $time" last_read.text = Date(history.last_read).toTimestampString(adapter.dateFormat)
// Set cover // Set cover
GlideApp.with(itemView.context).clear(cover) GlideApp.with(itemView.context).clear(cover)

View File

@ -4,8 +4,8 @@ import android.app.Dialog
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import androidx.preference.PreferenceScreen
import android.view.View import android.view.View
import androidx.preference.PreferenceScreen
import com.afollestad.materialdialogs.MaterialDialog import com.afollestad.materialdialogs.MaterialDialog
import eu.kanade.tachiyomi.BuildConfig import eu.kanade.tachiyomi.BuildConfig
import eu.kanade.tachiyomi.R 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.data.updater.UpdaterService
import eu.kanade.tachiyomi.ui.base.controller.DialogController import eu.kanade.tachiyomi.ui.base.controller.DialogController
import eu.kanade.tachiyomi.ui.main.ChangelogDialogController import eu.kanade.tachiyomi.ui.main.ChangelogDialogController
import eu.kanade.tachiyomi.util.toTimestampString
import eu.kanade.tachiyomi.util.toast import eu.kanade.tachiyomi.util.toast
import rx.Subscription import rx.Subscription
import rx.android.schedulers.AndroidSchedulers import rx.android.schedulers.AndroidSchedulers
@ -26,7 +27,8 @@ import uy.kohesive.injekt.injectLazy
import java.text.DateFormat import java.text.DateFormat
import java.text.ParseException import java.text.ParseException
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.Locale
import java.util.TimeZone
import eu.kanade.tachiyomi.data.preference.PreferenceKeys as Keys import eu.kanade.tachiyomi.data.preference.PreferenceKeys as Keys
class SettingsAboutController : SettingsController() { class SettingsAboutController : SettingsController() {
@ -36,10 +38,9 @@ class SettingsAboutController : SettingsController() {
*/ */
private val updateChecker by lazy { UpdateChecker.getUpdateChecker() } private val updateChecker by lazy { UpdateChecker.getUpdateChecker() }
private val userPreferences: PreferencesHelper by injectLazy() 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 * The subscribtion service of the obtained release object
@ -192,9 +193,7 @@ class SettingsAboutController : SettingsController() {
DateFormat.MEDIUM, DateFormat.SHORT, Locale.getDefault()) DateFormat.MEDIUM, DateFormat.SHORT, Locale.getDefault())
outputDf.timeZone = TimeZone.getDefault() outputDf.timeZone = TimeZone.getDefault()
val date = dateFormat.format(buildTime) return buildTime.toTimestampString(dateFormat)
val time = DateFormat.getTimeInstance(DateFormat.SHORT).format(buildTime)
return "$date $time"
} catch (e: ParseException) { } catch (e: ParseException) {
return BuildConfig.BUILD_TIME return BuildConfig.BUILD_TIME
} }

View File

@ -14,12 +14,12 @@ class SettingsGeneralController : SettingsController() {
key = Keys.lang key = Keys.lang
titleRes = R.string.pref_language titleRes = R.string.pref_language
entryValues = arrayOf("", "ar", "bg", "bn", "ca", "cs", "de", "el", "en-US", "en-GB", 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", "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") "pt-BR", "ro", "ru", "sc", "sr", "sv", "th", "tl", "tr", "uk", "vi", "zh-rCN")
entries = entryValues.map { value -> entries = entryValues.map { value ->
val locale = LocaleHelper.getLocaleFromString(value.toString()) val locale = LocaleHelper.getLocaleFromString(value.toString())
locale?.getDisplayName(locale)?.capitalize() ?: locale?.getDisplayName(locale)?.capitalize()
context.getString(R.string.system_default) ?: context.getString(R.string.system_default)
}.toTypedArray() }.toTypedArray()
defaultValue = "" defaultValue = ""
summary = "%s" summary = "%s"
@ -34,9 +34,9 @@ class SettingsGeneralController : SettingsController() {
} }
} }
listPreference { listPreference {
key= Keys.dateFormat key = Keys.dateFormat
titleRes = R.string.pref_date_format 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 -> entries = entryValues.map { value ->
if (value == "") { if (value == "") {
context.getString(R.string.system_default) context.getString(R.string.system_default)
@ -45,7 +45,7 @@ class SettingsGeneralController : SettingsController() {
} }
}.toTypedArray() }.toTypedArray()
defaultValue = "" defaultValue = ""
summary= "%s" summary = "%s"
} }
intListPreference { intListPreference {
key = Keys.theme key = Keys.theme

View File

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