@ -63,6 +63,7 @@ import eu.kanade.tachiyomi.data.download.model.Download
import eu.kanade.tachiyomi.source.getNameForMangaInfo
import eu.kanade.tachiyomi.ui.manga.ChapterItem
import eu.kanade.tachiyomi.ui.manga.MangaScreenModel
import eu.kanade.tachiyomi.util.lang.toRelativeString
import eu.kanade.tachiyomi.util.system.copyToClipboard
import tachiyomi.domain.chapter.model.Chapter
import tachiyomi.domain.chapter.service.missingChaptersCount
@ -84,6 +85,7 @@ fun MangaScreen(
state : MangaScreenModel . State . Success ,
snackbarHostState : SnackbarHostState ,
fetchInterval : Int ? ,
dateRelativeTime : Boolean ,
dateFormat : DateFormat ,
isTabletUi : Boolean ,
chapterSwipeStartAction : LibraryPreferences . ChapterSwipeAction ,
@ -139,6 +141,7 @@ fun MangaScreen(
MangaScreenSmallImpl (
state = state ,
snackbarHostState = snackbarHostState ,
dateRelativeTime = dateRelativeTime ,
dateFormat = dateFormat ,
fetchInterval = fetchInterval ,
chapterSwipeStartAction = chapterSwipeStartAction ,
@ -175,6 +178,7 @@ fun MangaScreen(
MangaScreenLargeImpl (
state = state ,
snackbarHostState = snackbarHostState ,
dateRelativeTime = dateRelativeTime ,
chapterSwipeStartAction = chapterSwipeStartAction ,
chapterSwipeEndAction = chapterSwipeEndAction ,
dateFormat = dateFormat ,
@ -214,6 +218,7 @@ fun MangaScreen(
private fun MangaScreenSmallImpl (
state : MangaScreenModel . State . Success ,
snackbarHostState : SnackbarHostState ,
dateRelativeTime : Boolean ,
dateFormat : DateFormat ,
fetchInterval : Int ? ,
chapterSwipeStartAction : LibraryPreferences . ChapterSwipeAction ,
@ -282,11 +287,9 @@ private fun MangaScreenSmallImpl(
}
val animatedTitleAlpha by animateFloatAsState (
if ( firstVisibleItemIndex > 0 ) 1f else 0f ,
label = " titleAlpha " ,
)
val animatedBgAlpha by animateFloatAsState (
if ( firstVisibleItemIndex > 0 || firstVisibleItemScrollOffset > 0 ) 1f else 0f ,
label = " bgAlpha " ,
)
MangaToolbar (
title = state . manga . title ,
@ -427,6 +430,7 @@ private fun MangaScreenSmallImpl(
sharedChapterItems (
manga = state . manga ,
chapters = chapters ,
dateRelativeTime = dateRelativeTime ,
dateFormat = dateFormat ,
chapterSwipeStartAction = chapterSwipeStartAction ,
chapterSwipeEndAction = chapterSwipeEndAction ,
@ -445,6 +449,7 @@ private fun MangaScreenSmallImpl(
fun MangaScreenLargeImpl (
state : MangaScreenModel . State . Success ,
snackbarHostState : SnackbarHostState ,
dateRelativeTime : Boolean ,
dateFormat : DateFormat ,
fetchInterval : Int ? ,
chapterSwipeStartAction : LibraryPreferences . ChapterSwipeAction ,
@ -650,6 +655,7 @@ fun MangaScreenLargeImpl(
sharedChapterItems (
manga = state . manga ,
chapters = chapters ,
dateRelativeTime = dateRelativeTime ,
dateFormat = dateFormat ,
chapterSwipeStartAction = chapterSwipeStartAction ,
chapterSwipeEndAction = chapterSwipeEndAction ,
@ -711,6 +717,7 @@ private fun SharedMangaBottomActionMenu(
private fun LazyListScope . sharedChapterItems (
manga : Manga ,
chapters : List < ChapterItem > ,
dateRelativeTime : Boolean ,
dateFormat : DateFormat ,
chapterSwipeStartAction : LibraryPreferences . ChapterSwipeAction ,
chapterSwipeEndAction : LibraryPreferences . ChapterSwipeAction ,
@ -739,7 +746,11 @@ private fun LazyListScope.sharedChapterItems(
date = chapterItem . chapter . dateUpload
. takeIf { it > 0L }
?. let {
dateFormat . format ( Date ( it ) )
Date ( it ) . toRelativeString (
context ,
dateRelativeTime ,
dateFormat ,
)
} ,
readProgress = chapterItem . chapter . lastPageRead
. takeIf { ! chapterItem . chapter . read && it > 0L }