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