mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-12-22 16:21:49 +01:00
Use toRelativeString in Updates and History headings
This commit is contained in:
parent
fbc6965c4e
commit
ae1a76da2b
@ -1,6 +1,5 @@
|
|||||||
package eu.kanade.tachiyomi.ui.recent
|
package eu.kanade.tachiyomi.ui.recent
|
||||||
|
|
||||||
import android.text.format.DateUtils
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import eu.davidea.flexibleadapter.FlexibleAdapter
|
import eu.davidea.flexibleadapter.FlexibleAdapter
|
||||||
@ -9,9 +8,15 @@ import eu.davidea.flexibleadapter.items.IFlexible
|
|||||||
import eu.davidea.viewholders.FlexibleViewHolder
|
import eu.davidea.viewholders.FlexibleViewHolder
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.databinding.SectionHeaderItemBinding
|
import eu.kanade.tachiyomi.databinding.SectionHeaderItemBinding
|
||||||
|
import eu.kanade.tachiyomi.util.lang.toRelativeString
|
||||||
|
import java.text.DateFormat
|
||||||
import java.util.Date
|
import java.util.Date
|
||||||
|
|
||||||
class DateSectionItem(val date: Date) : AbstractHeaderItem<DateSectionItem.DateSectionItemHolder>() {
|
class DateSectionItem(
|
||||||
|
private val date: Date,
|
||||||
|
private val range: Int,
|
||||||
|
private val dateFormat: DateFormat,
|
||||||
|
) : AbstractHeaderItem<DateSectionItem.DateSectionItemHolder>() {
|
||||||
|
|
||||||
override fun getLayoutRes(): Int {
|
override fun getLayoutRes(): Int {
|
||||||
return R.layout.section_header_item
|
return R.layout.section_header_item
|
||||||
@ -37,14 +42,12 @@ class DateSectionItem(val date: Date) : AbstractHeaderItem<DateSectionItem.DateS
|
|||||||
return date.hashCode()
|
return date.hashCode()
|
||||||
}
|
}
|
||||||
|
|
||||||
inner class DateSectionItemHolder(view: View, adapter: FlexibleAdapter<*>) : FlexibleViewHolder(view, adapter, true) {
|
inner class DateSectionItemHolder(private val view: View, adapter: FlexibleAdapter<*>) : FlexibleViewHolder(view, adapter, true) {
|
||||||
|
|
||||||
private val binding = SectionHeaderItemBinding.bind(view)
|
private val binding = SectionHeaderItemBinding.bind(view)
|
||||||
|
|
||||||
private val now = Date().time
|
|
||||||
|
|
||||||
fun bind(item: DateSectionItem) {
|
fun bind(item: DateSectionItem) {
|
||||||
binding.title.text = DateUtils.getRelativeTimeSpanString(item.date.time, now, DateUtils.DAY_IN_MILLIS)
|
binding.title.text = item.date.toRelativeString(view.context, range, dateFormat)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ import eu.kanade.tachiyomi.data.database.models.Chapter
|
|||||||
import eu.kanade.tachiyomi.data.database.models.History
|
import eu.kanade.tachiyomi.data.database.models.History
|
||||||
import eu.kanade.tachiyomi.data.database.models.Manga
|
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||||
import eu.kanade.tachiyomi.data.database.models.MangaChapterHistory
|
import eu.kanade.tachiyomi.data.database.models.MangaChapterHistory
|
||||||
|
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||||
import eu.kanade.tachiyomi.ui.base.presenter.BasePresenter
|
import eu.kanade.tachiyomi.ui.base.presenter.BasePresenter
|
||||||
import eu.kanade.tachiyomi.ui.recent.DateSectionItem
|
import eu.kanade.tachiyomi.ui.recent.DateSectionItem
|
||||||
import eu.kanade.tachiyomi.util.lang.toDateKey
|
import eu.kanade.tachiyomi.util.lang.toDateKey
|
||||||
@ -13,6 +14,7 @@ import rx.Observable
|
|||||||
import rx.Subscription
|
import rx.Subscription
|
||||||
import rx.android.schedulers.AndroidSchedulers
|
import rx.android.schedulers.AndroidSchedulers
|
||||||
import uy.kohesive.injekt.injectLazy
|
import uy.kohesive.injekt.injectLazy
|
||||||
|
import java.text.DateFormat
|
||||||
import java.util.Calendar
|
import java.util.Calendar
|
||||||
import java.util.Date
|
import java.util.Date
|
||||||
import java.util.TreeMap
|
import java.util.TreeMap
|
||||||
@ -24,10 +26,11 @@ import java.util.TreeMap
|
|||||||
*/
|
*/
|
||||||
class HistoryPresenter : BasePresenter<HistoryController>() {
|
class HistoryPresenter : BasePresenter<HistoryController>() {
|
||||||
|
|
||||||
/**
|
private val db: DatabaseHelper by injectLazy()
|
||||||
* Used to connect to database
|
private val preferences: PreferencesHelper by injectLazy()
|
||||||
*/
|
|
||||||
val db: DatabaseHelper by injectLazy()
|
private val relativeTime: Int = preferences.relativeTime().get()
|
||||||
|
private val dateFormat: DateFormat = preferences.dateFormat()
|
||||||
|
|
||||||
private var recentMangaSubscription: Subscription? = null
|
private var recentMangaSubscription: Subscription? = null
|
||||||
|
|
||||||
@ -65,7 +68,7 @@ class HistoryPresenter : BasePresenter<HistoryController>() {
|
|||||||
val byDay = recents
|
val byDay = recents
|
||||||
.groupByTo(map, { it.history.last_read.toDateKey() })
|
.groupByTo(map, { it.history.last_read.toDateKey() })
|
||||||
byDay.flatMap { entry ->
|
byDay.flatMap { entry ->
|
||||||
val dateItem = DateSectionItem(entry.key)
|
val dateItem = DateSectionItem(entry.key, relativeTime, dateFormat)
|
||||||
entry.value.map { HistoryItem(it, dateItem) }
|
entry.value.map { HistoryItem(it, dateItem) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,18 +15,22 @@ import rx.Observable
|
|||||||
import rx.android.schedulers.AndroidSchedulers
|
import rx.android.schedulers.AndroidSchedulers
|
||||||
import rx.schedulers.Schedulers
|
import rx.schedulers.Schedulers
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import uy.kohesive.injekt.Injekt
|
|
||||||
import uy.kohesive.injekt.api.get
|
import uy.kohesive.injekt.api.get
|
||||||
|
import uy.kohesive.injekt.injectLazy
|
||||||
|
import java.text.DateFormat
|
||||||
import java.util.Calendar
|
import java.util.Calendar
|
||||||
import java.util.Date
|
import java.util.Date
|
||||||
import java.util.TreeMap
|
import java.util.TreeMap
|
||||||
|
|
||||||
class UpdatesPresenter(
|
class UpdatesPresenter : BasePresenter<UpdatesController>() {
|
||||||
val preferences: PreferencesHelper = Injekt.get(),
|
|
||||||
private val db: DatabaseHelper = Injekt.get(),
|
val preferences: PreferencesHelper by injectLazy()
|
||||||
private val downloadManager: DownloadManager = Injekt.get(),
|
private val db: DatabaseHelper by injectLazy()
|
||||||
private val sourceManager: SourceManager = Injekt.get()
|
private val downloadManager: DownloadManager by injectLazy()
|
||||||
) : BasePresenter<UpdatesController>() {
|
private val sourceManager: SourceManager by injectLazy()
|
||||||
|
|
||||||
|
private val relativeTime: Int = preferences.relativeTime().get()
|
||||||
|
private val dateFormat: DateFormat = preferences.dateFormat()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List containing chapter and manga information
|
* List containing chapter and manga information
|
||||||
@ -82,7 +86,7 @@ class UpdatesPresenter(
|
|||||||
val byDay = mangaChapters
|
val byDay = mangaChapters
|
||||||
.groupByTo(map, { it.chapter.date_fetch.toDateKey() })
|
.groupByTo(map, { it.chapter.date_fetch.toDateKey() })
|
||||||
byDay.flatMap { entry ->
|
byDay.flatMap { entry ->
|
||||||
val dateItem = DateSectionItem(entry.key)
|
val dateItem = DateSectionItem(entry.key, relativeTime, dateFormat)
|
||||||
entry.value
|
entry.value
|
||||||
.sortedWith(compareBy({ it.chapter.date_fetch }, { it.chapter.chapter_number })).asReversed()
|
.sortedWith(compareBy({ it.chapter.date_fetch }, { it.chapter.chapter_number })).asReversed()
|
||||||
.map { UpdatesItem(it.chapter, it.manga, dateItem) }
|
.map { UpdatesItem(it.chapter, it.manga, dateItem) }
|
||||||
|
Loading…
Reference in New Issue
Block a user