diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/core/prefs/AppSettings.kt b/app/src/main/kotlin/org/koitharu/kotatsu/core/prefs/AppSettings.kt index 603d778dc..8a90f03cb 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/core/prefs/AppSettings.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/core/prefs/AppSettings.kt @@ -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" diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/details/domain/ReadingTimeUseCase.kt b/app/src/main/kotlin/org/koitharu/kotatsu/details/domain/ReadingTimeUseCase.kt index 64ced6c42..cab72330a 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/details/domain/ReadingTimeUseCase.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/details/domain/ReadingTimeUseCase.kt @@ -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()) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index eba171f6d..4c22fea51 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -589,4 +589,6 @@ Fullscreen mode Hide system status and navigation bars %1$d/%2$d + Show estimated reading time + The time estimation value may be inaccurate diff --git a/app/src/main/res/xml/pref_appearance.xml b/app/src/main/res/xml/pref_appearance.xml index 7076d082d..22be13d77 100644 --- a/app/src/main/res/xml/pref_appearance.xml +++ b/app/src/main/res/xml/pref_appearance.xml @@ -49,6 +49,12 @@ + +