Refactor data saver

(cherry picked from commit 36381aca33)
This commit is contained in:
Jobobby04
2023-03-15 18:00:59 -04:00
parent ba0674c4a3
commit f40fb30af9
5 changed files with 72 additions and 42 deletions
@@ -41,7 +41,7 @@ class SourcePreferences(
fun sourcesTabSourcesInCategories() = preferenceStore.getStringSet("sources_tab_source_categories", mutableSetOf())
fun dataSaver() = preferenceStore.getInt("data_saver", 0)
fun dataSaver() = preferenceStore.getEnum("data_saver", DataSaver.NONE)
fun dataSaverIgnoreJpeg() = preferenceStore.getBoolean("ignore_jpeg", false)
@@ -58,5 +58,11 @@ class SourcePreferences(
fun dataSaverExcludedSources() = preferenceStore.getStringSet("data_saver_excluded", emptySet())
fun dataSaverDownloader() = preferenceStore.getBoolean("data_saver_downloader", true)
enum class DataSaver {
NONE,
BANDWIDTH_HERO,
WSRV_NL,
}
// SY <--
}
@@ -44,6 +44,7 @@ import eu.kanade.domain.chapter.interactor.GetChapterByMangaId
import eu.kanade.domain.library.service.LibraryPreferences
import eu.kanade.domain.manga.interactor.GetAllManga
import eu.kanade.domain.source.service.SourcePreferences
import eu.kanade.domain.source.service.SourcePreferences.DataSaver
import eu.kanade.presentation.more.settings.Preference
import eu.kanade.presentation.util.collectAsState
import eu.kanade.tachiyomi.R
@@ -604,31 +605,31 @@ object SettingsAdvancedScreen : SearchableSettings {
title = stringResource(R.string.data_saver),
subtitle = stringResource(R.string.data_saver_summary),
entries = mapOf(
0 to stringResource(R.string.disabled),
1 to stringResource(R.string.bandwidth_hero),
2 to stringResource(R.string.wsrv),
DataSaver.NONE to stringResource(R.string.disabled),
DataSaver.BANDWIDTH_HERO to stringResource(R.string.bandwidth_hero),
DataSaver.WSRV_NL to stringResource(R.string.wsrv),
),
),
Preference.PreferenceItem.EditTextPreference(
pref = sourcePreferences.dataSaverServer(),
title = stringResource(R.string.bandwidth_data_saver_server),
subtitle = stringResource(R.string.data_saver_server_summary),
enabled = (dataSaver == 1),
enabled = dataSaver == DataSaver.BANDWIDTH_HERO,
),
Preference.PreferenceItem.SwitchPreference(
pref = sourcePreferences.dataSaverDownloader(),
title = stringResource(R.string.data_saver_downloader),
enabled = (dataSaver != 0),
enabled = dataSaver != DataSaver.NONE,
),
Preference.PreferenceItem.SwitchPreference(
pref = sourcePreferences.dataSaverIgnoreJpeg(),
title = stringResource(R.string.data_saver_ignore_jpeg),
enabled = (dataSaver != 0),
enabled = dataSaver != DataSaver.NONE,
),
Preference.PreferenceItem.SwitchPreference(
pref = sourcePreferences.dataSaverIgnoreGif(),
title = stringResource(R.string.data_saver_ignore_gif),
enabled = (dataSaver != 0),
enabled = dataSaver != DataSaver.NONE,
),
Preference.PreferenceItem.ListPreference(
pref = sourcePreferences.dataSaverImageQuality(),
@@ -644,7 +645,7 @@ object SettingsAdvancedScreen : SearchableSettings {
"90%",
"95%",
).associateBy { it.trimEnd('%').toInt() },
enabled = (dataSaver != 0),
enabled = dataSaver != DataSaver.NONE,
),
kotlin.run {
val dataSaverImageFormatJpeg by sourcePreferences.dataSaverImageFormatJpeg().collectAsState()
@@ -656,13 +657,13 @@ object SettingsAdvancedScreen : SearchableSettings {
} else {
stringResource(R.string.data_saver_image_format_summary_off)
},
enabled = (dataSaver != 0),
enabled = dataSaver != DataSaver.NONE,
)
},
Preference.PreferenceItem.SwitchPreference(
pref = sourcePreferences.dataSaverColorBW(),
title = stringResource(R.string.data_saver_color_bw),
enabled = (dataSaver == 1),
enabled = dataSaver == DataSaver.BANDWIDTH_HERO,
),
),
)
@@ -14,6 +14,7 @@ import eu.kanade.domain.source.interactor.ToggleExcludeFromDataSaver
import eu.kanade.domain.source.interactor.ToggleSource
import eu.kanade.domain.source.interactor.ToggleSourcePin
import eu.kanade.domain.source.service.SourcePreferences
import eu.kanade.domain.source.service.SourcePreferences.DataSaver
import eu.kanade.domain.ui.UiPreferences
import eu.kanade.presentation.browse.SourceUiModel
import kotlinx.coroutines.Dispatchers
@@ -75,7 +76,7 @@ class SourcesScreenModel(
.onEach {
mutableState.update {
it.copy(
dataSaverEnabled = (sourcePreferences.dataSaver().get()),
dataSaverEnabled = sourcePreferences.dataSaver().get() != DataSaver.NONE,
)
}
}
@@ -195,7 +196,7 @@ data class SourcesState(
val categories: List<String> = emptyList(),
val showPin: Boolean = true,
val showLatest: Boolean = false,
val dataSaverEnabled: Int = 0,
val dataSaverEnabled: Boolean = false,
// SY <--
) {
val isEmpty = items.isEmpty()
@@ -97,7 +97,7 @@ fun Screen.sourcesTab(
onClickToggleDataSaver = {
screenModel.toggleExcludeFromDataSaver(source)
screenModel.closeDialog()
}.takeIf { state.dataSaverEnabled != 0 },
}.takeIf { state.dataSaverEnabled },
onDismiss = screenModel::closeDialog,
)
}