Option to disable reading time estimator
This commit is contained in:
@@ -403,6 +403,9 @@ class AppSettings @Inject constructor(@ApplicationContext context: Context) {
|
|||||||
get() = prefs.getString(KEY_BACKUP_PERIODICAL_OUTPUT, null)?.toUriOrNull()
|
get() = prefs.getString(KEY_BACKUP_PERIODICAL_OUTPUT, null)?.toUriOrNull()
|
||||||
set(value) = prefs.edit { putString(KEY_BACKUP_PERIODICAL_OUTPUT, value?.toString()) }
|
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 {
|
fun isTipEnabled(tip: String): Boolean {
|
||||||
return prefs.getStringSet(KEY_TIPS_CLOSED, emptySet())?.contains(tip) != true
|
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_CF_GRAYSCALE = "cf_grayscale"
|
||||||
const val KEY_IGNORE_DOZE = "ignore_dose"
|
const val KEY_IGNORE_DOZE = "ignore_dose"
|
||||||
const val KEY_DETAILS_TAB = "details_tab"
|
const val KEY_DETAILS_TAB = "details_tab"
|
||||||
|
const val KEY_READING_TIME = "reading_time"
|
||||||
|
|
||||||
// About
|
// About
|
||||||
const val KEY_APP_UPDATE = "app_update"
|
const val KEY_APP_UPDATE = "app_update"
|
||||||
|
|||||||
@@ -2,14 +2,20 @@ package org.koitharu.kotatsu.details.domain
|
|||||||
|
|
||||||
import org.koitharu.kotatsu.core.model.MangaHistory
|
import org.koitharu.kotatsu.core.model.MangaHistory
|
||||||
import org.koitharu.kotatsu.core.model.findById
|
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.MangaDetails
|
||||||
import org.koitharu.kotatsu.details.data.ReadingTime
|
import org.koitharu.kotatsu.details.data.ReadingTime
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import kotlin.math.roundToInt
|
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? {
|
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
|
// 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)
|
val chapters = manga?.chapters?.get(branch)
|
||||||
if (chapters.isNullOrEmpty()) {
|
if (chapters.isNullOrEmpty()) {
|
||||||
|
|||||||
@@ -589,4 +589,6 @@
|
|||||||
<string name="fullscreen_mode">Fullscreen mode</string>
|
<string name="fullscreen_mode">Fullscreen mode</string>
|
||||||
<string name="reader_fullscreen_summary">Hide system status and navigation bars</string>
|
<string name="reader_fullscreen_summary">Hide system status and navigation bars</string>
|
||||||
<string name="fraction_pattern">%1$d/%2$d</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>
|
</resources>
|
||||||
|
|||||||
@@ -49,6 +49,12 @@
|
|||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:title="@string/details">
|
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
|
<ListPreference
|
||||||
android:defaultValue="0"
|
android:defaultValue="0"
|
||||||
android:entries="@array/details_tabs"
|
android:entries="@array/details_tabs"
|
||||||
|
|||||||
Reference in New Issue
Block a user