Option to disable reading time estimator

This commit is contained in:
Koitharu
2024-02-10 14:10:38 +02:00
parent 2a500eb2cb
commit 5426edd83a
4 changed files with 19 additions and 1 deletions

View File

@@ -403,6 +403,9 @@ class AppSettings @Inject constructor(@ApplicationContext context: Context) {
get() = prefs.getString(KEY_BACKUP_PERIODICAL_OUTPUT, null)?.toUriOrNull()
set(value) = prefs.edit { putString(KEY_BACKUP_PERIODICAL_OUTPUT, value?.toString()) }
val isReadingTimeEstimationEnabled: Boolean
get() = prefs.getBoolean(KEY_READING_TIME, true)
fun isTipEnabled(tip: String): Boolean {
return prefs.getStringSet(KEY_TIPS_CLOSED, emptySet())?.contains(tip) != true
}
@@ -579,6 +582,7 @@ class AppSettings @Inject constructor(@ApplicationContext context: Context) {
const val KEY_CF_GRAYSCALE = "cf_grayscale"
const val KEY_IGNORE_DOZE = "ignore_dose"
const val KEY_DETAILS_TAB = "details_tab"
const val KEY_READING_TIME = "reading_time"
// About
const val KEY_APP_UPDATE = "app_update"

View File

@@ -2,14 +2,20 @@ package org.koitharu.kotatsu.details.domain
import org.koitharu.kotatsu.core.model.MangaHistory
import org.koitharu.kotatsu.core.model.findById
import org.koitharu.kotatsu.core.prefs.AppSettings
import org.koitharu.kotatsu.details.data.MangaDetails
import org.koitharu.kotatsu.details.data.ReadingTime
import javax.inject.Inject
import kotlin.math.roundToInt
class ReadingTimeUseCase @Inject constructor() {
class ReadingTimeUseCase @Inject constructor(
private val settings: AppSettings,
) {
fun invoke(manga: MangaDetails?, branch: String?, history: MangaHistory?): ReadingTime? {
if (!settings.isReadingTimeEstimationEnabled) {
return null
}
// FIXME MAXIMUM HARDCODE!!! To do calculation with user's page read speed and his favourites/history mangas average pages in chapter
val chapters = manga?.chapters?.get(branch)
if (chapters.isNullOrEmpty()) {

View File

@@ -589,4 +589,6 @@
<string name="fullscreen_mode">Fullscreen mode</string>
<string name="reader_fullscreen_summary">Hide system status and navigation bars</string>
<string name="fraction_pattern">%1$d/%2$d</string>
<string name="reading_time_estimation">Show estimated reading time</string>
<string name="reading_time_estimation_summary">The time estimation value may be inaccurate</string>
</resources>

View File

@@ -49,6 +49,12 @@
<PreferenceCategory
android:title="@string/details">
<SwitchPreferenceCompat
android:defaultValue="true"
android:key="reading_time"
android:summary="@string/reading_time_estimation_summary"
android:title="@string/reading_time_estimation" />
<ListPreference
android:defaultValue="0"
android:entries="@array/details_tabs"