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 1a2d8649f..f660e23f6 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 @@ -49,7 +49,6 @@ object SettingsAppearanceScreen : SearchableSettings { return listOf( getThemeGroup(context = context, uiPreferences = uiPreferences), getDisplayGroup(context = context, uiPreferences = uiPreferences), - getTimestampGroup(uiPreferences = uiPreferences), // SY --> getNavbarGroup(uiPreferences = uiPreferences), getForkGroup(uiPreferences = uiPreferences), @@ -126,6 +125,7 @@ object SettingsAppearanceScreen : SearchableSettings { ): Preference.PreferenceGroup { val langs = remember { getLangs(context) } var currentLanguage by remember { mutableStateOf(AppCompatDelegate.getApplicationLocales().get(0)?.toLanguageTag() ?: "") } + val now = remember { Date().time } LaunchedEffect(currentLanguage) { val locale = if (currentLanguage.isEmpty()) { @@ -157,25 +157,6 @@ object SettingsAppearanceScreen : SearchableSettings { true }, ), - ), - ) - } - - @Composable - private fun getTimestampGroup(uiPreferences: UiPreferences): Preference.PreferenceGroup { - val now = remember { Date().time } - return Preference.PreferenceGroup( - title = stringResource(R.string.pref_category_timestamps), - preferenceItems = listOf( - 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), - ), - ), Preference.PreferenceItem.ListPreference( pref = uiPreferences.dateFormat(), title = stringResource(R.string.pref_date_format), @@ -185,10 +166,18 @@ 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), + ), + ), ), ) } - private fun getLangs(context: Context): Map { val langs = mutableListOf>() val parser = context.resources.getXml(R.xml.locales_config) diff --git a/app/src/main/java/eu/kanade/presentation/webview/WebViewScreenContent.kt b/app/src/main/java/eu/kanade/presentation/webview/WebViewScreenContent.kt index e3da2dd6f..3a97d57ec 100644 --- a/app/src/main/java/eu/kanade/presentation/webview/WebViewScreenContent.kt +++ b/app/src/main/java/eu/kanade/presentation/webview/WebViewScreenContent.kt @@ -72,7 +72,7 @@ fun WebViewScreenContent( super.onPageFinished(view, url) scope.launch { val html = view.getHtml() - showCloudflareHelp = "Checking if the site connection is secure" in html + showCloudflareHelp = "window._cf_chl_opt" in html } } 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 662aec6f1..04e324851 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 @@ -76,7 +76,6 @@ import tachiyomi.core.util.lang.withNonCancellableContext import tachiyomi.core.util.system.logcat import tachiyomi.domain.UnsortedPreferences import tachiyomi.domain.chapter.model.Chapter -import tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_OUTSIDE_RELEASE_PERIOD import tachiyomi.domain.manga.model.Manga import tachiyomi.domain.source.service.SourceManager import tachiyomi.presentation.core.screens.LoadingScreen @@ -171,8 +170,8 @@ class MangaScreen( onCoverClicked = screenModel::showCoverDialog, onShareClicked = { shareManga(context, screenModel.manga, screenModel.source) }.takeIf { isHttpSource }, onDownloadActionClicked = screenModel::runDownloadAction.takeIf { !successState.source.isLocalOrStub() }, - onEditCategoryClicked = screenModel::promptChangeCategories.takeIf { successState.manga.favorite }, - onEditIntervalClicked = screenModel::showSetMangaIntervalDialog.takeIf { MANGA_OUTSIDE_RELEASE_PERIOD in screenModel.libraryPreferences.libraryUpdateMangaRestriction().get() && successState.manga.favorite }, + onEditCategoryClicked = screenModel::showChangeCategoryDialog.takeIf { successState.manga.favorite }, + onEditIntervalClicked = screenModel::showSetMangaIntervalDialog.takeIf { screenModel.isIntervalEnabled && successState.manga.favorite }, // SY --> onMigrateClicked = { migrateManga(navigator, screenModel.manga!!) }.takeIf { successState.manga.favorite }, onMetadataViewerClicked = { openMetadataViewer(navigator, successState.manga) }, 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 14fb19e5d..3835c3f4f 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 @@ -128,9 +128,9 @@ class MangaScreenModel( private val isFromSource: Boolean, val smartSearched: Boolean, private val downloadPreferences: DownloadPreferences = Injekt.get(), - val libraryPreferences: LibraryPreferences = Injekt.get(), - val readerPreferences: ReaderPreferences = Injekt.get(), - val uiPreferences: UiPreferences = Injekt.get(), + private val libraryPreferences: LibraryPreferences = Injekt.get(), + readerPreferences: ReaderPreferences = Injekt.get(), + uiPreferences: UiPreferences = Injekt.get(), private val trackManager: TrackManager = Injekt.get(), private val downloadManager: DownloadManager = Injekt.get(), private val downloadCache: DownloadCache = Injekt.get(), @@ -194,6 +194,10 @@ class MangaScreenModel( val dateFormat by mutableStateOf(UiPreferences.dateFormat(uiPreferences.dateFormat().get())) private val skipFiltered by readerPreferences.skipFiltered().asState(coroutineScope) + val isIntervalEnabled = LibraryPreferences.MANGA_OUTSIDE_RELEASE_PERIOD in libraryPreferences.libraryUpdateMangaRestriction().get() + private val leadDay = libraryPreferences.leadingExpectedDays().get() + private val followDay = libraryPreferences.followingExpectedDays().get() + private val selectedPositions: Array = arrayOf(-1, -1) // first and last selected index in list private val selectedChapterIds: HashSet = HashSet() @@ -782,10 +786,8 @@ class MangaScreenModel( // TODO: this should be in the state/composables fun intervalDisplay(): Pair? { - val state = successState ?: return null - val leadDay = libraryPreferences.leadingExpectedDays().get() - val followDay = libraryPreferences.followingExpectedDays().get() - val effInterval = state.manga.calculateInterval + val manga = successState?.manga ?: return null + val effInterval = manga.calculateInterval return 1.coerceAtLeast(effInterval.absoluteValue - leadDay) to (effInterval.absoluteValue + followDay) } diff --git a/i18n/src/main/res/values/strings.xml b/i18n/src/main/res/values/strings.xml index 68ad3deaa..8a73e41ec 100755 --- a/i18n/src/main/res/values/strings.xml +++ b/i18n/src/main/res/values/strings.xml @@ -201,7 +201,6 @@ Yotsuba Tidal Wave Pure black dark mode - Timestamps Relative timestamps Short (Today, Yesterday) Long (Short+, n days ago)