From 781ec229b76c254db81f145897c30c0bb8f98b89 Mon Sep 17 00:00:00 2001 From: arkon Date: Sat, 29 Jul 2023 10:03:16 -0400 Subject: [PATCH] Remove relative timestamps setting (cherry picked from commit fe90546821092ce8916445ce515ba51404617d62) # Conflicts: # app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt # app/src/main/java/eu/kanade/presentation/updates/UpdatesScreen.kt # app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesScreenModel.kt # app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesTab.kt --- .../components/RelativeDateHeader.kt | 7 +------ .../kanade/presentation/history/HistoryScreen.kt | 2 -- .../eu/kanade/presentation/manga/MangaScreen.kt | 16 +++------------- .../settings/screen/SettingsAppearanceScreen.kt | 9 --------- .../kanade/presentation/updates/UpdatesScreen.kt | 3 +-- .../eu/kanade/tachiyomi/ui/manga/MangaScreen.kt | 1 - .../tachiyomi/ui/manga/MangaScreenModel.kt | 1 - .../tachiyomi/ui/updates/UpdatesScreenModel.kt | 12 +++--------- .../eu/kanade/tachiyomi/ui/updates/UpdatesTab.kt | 1 - .../kanade/tachiyomi/util/lang/DateExtensions.kt | 6 +----- i18n/src/main/res/values/strings.xml | 3 --- .../core/components/AdaptiveSheet.kt | 1 + 12 files changed, 10 insertions(+), 52 deletions(-) diff --git a/app/src/main/java/eu/kanade/presentation/components/RelativeDateHeader.kt b/app/src/main/java/eu/kanade/presentation/components/RelativeDateHeader.kt index 1a7683293..89bb61b4f 100644 --- a/app/src/main/java/eu/kanade/presentation/components/RelativeDateHeader.kt +++ b/app/src/main/java/eu/kanade/presentation/components/RelativeDateHeader.kt @@ -13,18 +13,13 @@ import java.util.Date fun RelativeDateHeader( modifier: Modifier = Modifier, date: Date, - relativeTime: Int, dateFormat: DateFormat, ) { val context = LocalContext.current ListGroupHeader( modifier = modifier, text = remember { - date.toRelativeString( - context, - relativeTime, - dateFormat, - ) + date.toRelativeString(context, dateFormat) }, ) } diff --git a/app/src/main/java/eu/kanade/presentation/history/HistoryScreen.kt b/app/src/main/java/eu/kanade/presentation/history/HistoryScreen.kt index 3cd5be4f0..1a80c8f01 100644 --- a/app/src/main/java/eu/kanade/presentation/history/HistoryScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/history/HistoryScreen.kt @@ -98,7 +98,6 @@ private fun HistoryScreenContent( onClickDelete: (HistoryWithRelations) -> Unit, preferences: UiPreferences = Injekt.get(), ) { - val relativeTime: Int = remember { preferences.relativeTime().get() } val dateFormat: DateFormat = remember { UiPreferences.dateFormat(preferences.dateFormat().get()) } FastScrollLazyColumn( @@ -119,7 +118,6 @@ private fun HistoryScreenContent( RelativeDateHeader( modifier = Modifier.animateItemPlacement(), date = item.date, - relativeTime = relativeTime, dateFormat = dateFormat, ) } diff --git a/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt b/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt index 7589a2700..98263923f 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt @@ -108,7 +108,6 @@ import java.util.Date fun MangaScreen( state: MangaScreenModel.State.Success, snackbarHostState: SnackbarHostState, - dateRelativeTime: Int, intervalDisplay: () -> Pair?, dateFormat: DateFormat, isTabletUi: Boolean, @@ -175,7 +174,6 @@ fun MangaScreen( MangaScreenSmallImpl( state = state, snackbarHostState = snackbarHostState, - dateRelativeTime = dateRelativeTime, dateFormat = dateFormat, intervalDisplay = intervalDisplay, chapterSwipeStartAction = chapterSwipeStartAction, @@ -222,7 +220,6 @@ fun MangaScreen( MangaScreenLargeImpl( state = state, snackbarHostState = snackbarHostState, - dateRelativeTime = dateRelativeTime, chapterSwipeStartAction = chapterSwipeStartAction, chapterSwipeEndAction = chapterSwipeEndAction, dateFormat = dateFormat, @@ -272,7 +269,6 @@ fun MangaScreen( private fun MangaScreenSmallImpl( state: MangaScreenModel.State.Success, snackbarHostState: SnackbarHostState, - dateRelativeTime: Int, dateFormat: DateFormat, intervalDisplay: () -> Pair?, chapterSwipeStartAction: LibraryPreferences.ChapterSwipeAction, @@ -354,9 +350,11 @@ 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, @@ -557,7 +555,6 @@ private fun MangaScreenSmallImpl( sharedChapterItems( manga = state.manga, chapters = chapters, - dateRelativeTime = dateRelativeTime, dateFormat = dateFormat, chapterSwipeStartAction = chapterSwipeStartAction, chapterSwipeEndAction = chapterSwipeEndAction, @@ -579,7 +576,6 @@ private fun MangaScreenSmallImpl( fun MangaScreenLargeImpl( state: MangaScreenModel.State.Success, snackbarHostState: SnackbarHostState, - dateRelativeTime: Int, dateFormat: DateFormat, intervalDisplay: () -> Pair?, chapterSwipeStartAction: LibraryPreferences.ChapterSwipeAction, @@ -839,7 +835,6 @@ fun MangaScreenLargeImpl( sharedChapterItems( manga = state.manga, chapters = chapters, - dateRelativeTime = dateRelativeTime, dateFormat = dateFormat, chapterSwipeStartAction = chapterSwipeStartAction, chapterSwipeEndAction = chapterSwipeEndAction, @@ -904,7 +899,6 @@ private fun SharedMangaBottomActionMenu( private fun LazyListScope.sharedChapterItems( manga: Manga, chapters: List, - dateRelativeTime: Int, dateFormat: DateFormat, chapterSwipeStartAction: LibraryPreferences.ChapterSwipeAction, chapterSwipeEndAction: LibraryPreferences.ChapterSwipeAction, @@ -940,11 +934,7 @@ private fun LazyListScope.sharedChapterItems( if (manga.isEhBasedManga()) { MetadataUtil.EX_DATE_FORMAT.format(Date(it)) } else { - Date(it).toRelativeString( - context, - dateRelativeTime, - dateFormat, - ) + Date(it).toRelativeString(context, dateFormat) } // SY <-- }, diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt index f660e23f6..c26c29761 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt @@ -166,15 +166,6 @@ object SettingsAppearanceScreen : SearchableSettings { "${it.ifEmpty { stringResource(R.string.label_default) }} ($formattedDate)" }, ), - Preference.PreferenceItem.ListPreference( - pref = uiPreferences.relativeTime(), - title = stringResource(R.string.pref_relative_format), - entries = mapOf( - 0 to stringResource(R.string.off), - 2 to stringResource(R.string.pref_relative_time_short), - 7 to stringResource(R.string.pref_relative_time_long), - ), - ), ), ) } diff --git a/app/src/main/java/eu/kanade/presentation/updates/UpdatesScreen.kt b/app/src/main/java/eu/kanade/presentation/updates/UpdatesScreen.kt index 87f447a20..8c1a990bb 100644 --- a/app/src/main/java/eu/kanade/presentation/updates/UpdatesScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/updates/UpdatesScreen.kt @@ -43,7 +43,6 @@ fun UpdateScreen( state: UpdatesScreenModel.State, snackbarHostState: SnackbarHostState, lastUpdated: Long, - relativeTime: Int, // SY --> preserveReadingPosition: Boolean, // SY <-- @@ -117,7 +116,7 @@ fun UpdateScreen( } updatesUiItems( - uiModels = state.getUiModel(context, relativeTime), + uiModels = state.getUiModel(context), selectionMode = state.selectionMode, // SY --> preserveReadingPosition = preserveReadingPosition, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt index 04e324851..e2cf052ce 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt @@ -138,7 +138,6 @@ class MangaScreen( MangaScreen( state = successState, snackbarHostState = screenModel.snackbarHostState, - dateRelativeTime = screenModel.relativeTime, dateFormat = screenModel.dateFormat, intervalDisplay = screenModel::intervalDisplay, isTabletUi = isTabletUi(), diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt index 3835c3f4f..36a1a3ffd 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt @@ -190,7 +190,6 @@ class MangaScreenModel( val chapterSwipeStartAction = libraryPreferences.swipeToEndAction().get() val chapterSwipeEndAction = libraryPreferences.swipeToStartAction().get() - val relativeTime by uiPreferences.relativeTime().asState(coroutineScope) val dateFormat by mutableStateOf(UiPreferences.dateFormat(uiPreferences.dateFormat().get())) private val skipFiltered by readerPreferences.skipFiltered().asState(coroutineScope) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesScreenModel.kt index f3e3aa5ef..cfe86c494 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesScreenModel.kt @@ -62,7 +62,6 @@ class UpdatesScreenModel( private val getChapter: GetChapter = Injekt.get(), private val libraryPreferences: LibraryPreferences = Injekt.get(), val snackbarHostState: SnackbarHostState = SnackbarHostState(), - uiPreferences: UiPreferences = Injekt.get(), // SY --> readerPreferences: ReaderPreferences = Injekt.get(), // SY <-- @@ -72,7 +71,6 @@ class UpdatesScreenModel( val events: Flow = _events.receiveAsFlow() val lastUpdated by libraryPreferences.libraryUpdateLastTimestamp().asState(coroutineScope) - val relativeTime by uiPreferences.relativeTime().asState(coroutineScope) // SY --> val preserveReadingPosition by readerPreferences.preserveReadingPosition().asState(coroutineScope) @@ -382,12 +380,12 @@ class UpdatesScreenModel( data class State( val isLoading: Boolean = true, val items: List = emptyList(), - val dialog: UpdatesScreenModel.Dialog? = null, + val dialog: Dialog? = null, ) { val selected = items.filter { it.selected } val selectionMode = selected.isNotEmpty() - fun getUiModel(context: Context, relativeTime: Int): List { + fun getUiModel(context: Context): List { val dateFormat by mutableStateOf(UiPreferences.dateFormat(Injekt.get().dateFormat().get())) return items @@ -397,11 +395,7 @@ class UpdatesScreenModel( val afterDate = after?.item?.update?.dateFetch?.toDateKey() ?: Date(0) when { beforeDate.time != afterDate.time && afterDate.time != 0L -> { - val text = afterDate.toRelativeString( - context = context, - range = relativeTime, - dateFormat = dateFormat, - ) + val text = afterDate.toRelativeString(context, dateFormat) UpdatesUiModel.Header(text) } // Return null to avoid adding a separator between two items. diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesTab.kt index 24ab0c5fb..9569b55a5 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesTab.kt @@ -73,7 +73,6 @@ object UpdatesTab : Tab { state = state, snackbarHostState = screenModel.snackbarHostState, lastUpdated = screenModel.lastUpdated, - relativeTime = screenModel.relativeTime, // SY --> preserveReadingPosition = screenModel.preserveReadingPosition, // SY <-- diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/lang/DateExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/lang/DateExtensions.kt index c7c29561b..f0612506c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/lang/DateExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/lang/DateExtensions.kt @@ -114,19 +114,15 @@ private const val MILLISECONDS_IN_DAY = 86_400_000L fun Date.toRelativeString( context: Context, - range: Int = 7, dateFormat: DateFormat = DateFormat.getDateInstance(DateFormat.SHORT), ): String { - if (range == 0) { - return dateFormat.format(this) - } val now = Date() val difference = now.timeWithOffset.floorNearest(MILLISECONDS_IN_DAY) - this.timeWithOffset.floorNearest(MILLISECONDS_IN_DAY) val days = difference.floorDiv(MILLISECONDS_IN_DAY).toInt() return when { difference < 0 -> context.getString(R.string.recently) difference < MILLISECONDS_IN_DAY -> context.getString(R.string.relative_time_today) - difference < MILLISECONDS_IN_DAY.times(range) -> context.resources.getQuantityString( + difference < MILLISECONDS_IN_DAY.times(7) -> context.resources.getQuantityString( R.plurals.relative_time, days, days, diff --git a/i18n/src/main/res/values/strings.xml b/i18n/src/main/res/values/strings.xml index 8a73e41ec..c7d1f2069 100755 --- a/i18n/src/main/res/values/strings.xml +++ b/i18n/src/main/res/values/strings.xml @@ -201,9 +201,6 @@ Yotsuba Tidal Wave Pure black dark mode - Relative timestamps - Short (Today, Yesterday) - Long (Short+, n days ago) Date format Manage notifications diff --git a/presentation-core/src/main/java/tachiyomi/presentation/core/components/AdaptiveSheet.kt b/presentation-core/src/main/java/tachiyomi/presentation/core/components/AdaptiveSheet.kt index 24ae1b48d..87e17416a 100644 --- a/presentation-core/src/main/java/tachiyomi/presentation/core/components/AdaptiveSheet.kt +++ b/presentation-core/src/main/java/tachiyomi/presentation/core/components/AdaptiveSheet.kt @@ -70,6 +70,7 @@ fun AdaptiveSheet( val alpha by animateFloatAsState( targetValue = targetAlpha, animationSpec = sheetAnimationSpec, + label = "alpha", ) val internalOnDismissRequest: () -> Unit = { scope.launch {