Add Download As CBZ support

This commit is contained in:
Syer10
2023-02-12 17:04:54 -05:00
parent 9c40592779
commit 5477cfc06c
4 changed files with 29 additions and 0 deletions

View File

@@ -48,10 +48,16 @@ class ServerHostPreferences(private val preferenceStore: PreferenceStore) {
fun systemTrayEnabled(): Preference<Boolean> {
return systemTrayEnabled.preference()
}
// Downloader
private val downloadPath = ServerHostPreference.DownloadPath(preferenceStore)
fun downloadPath(): Preference<String> {
return downloadPath.preference()
}
private val downloadAsCbz = ServerHostPreference.DownloadAsCbz(preferenceStore)
fun downloadAsCbz(): Preference<Boolean> {
return downloadAsCbz.preference()
}
// WebUI
private val webUIEnabled = ServerHostPreference.WebUIEnabled(preferenceStore)
@@ -87,6 +93,7 @@ class ServerHostPreferences(private val preferenceStore: PreferenceStore) {
debugLogsEnabled,
systemTrayEnabled,
downloadPath,
downloadAsCbz,
webUIEnabled,
openInBrowserEnabled,
basicAuthEnabled,

View File

@@ -108,11 +108,18 @@ sealed class ServerHostPreference<T : Any> {
false,
true
)
// Downloader
class DownloadPath(preferenceStore: PreferenceStore) : StringServerHostPreference(
preferenceStore,
"downloadsPath",
""
)
class DownloadAsCbz(preferenceStore: PreferenceStore) : BooleanServerHostPreference(
preferenceStore,
"downloadAsCbz",
false
)
// WebUI
class WebUIEnabled(preferenceStore: PreferenceStore) : BooleanServerHostPreference(

View File

@@ -300,6 +300,8 @@
<string name="host_download_path">Download path</string>
<string name="host_download_path_sub">Current download path: %1$s</string>
<string name="host_download_path_sub_empty">Using default download path</string>
<string name="host_download_as_cbz">Download as CBZ</string>
<string name="host_download_as_cbz_sub">Download chapters into CBZ archives</string>
<string name="host_webui">Server WebUI</string>
<string name="host_webui_sub">Whether the server\'s default WebUI is enabled, makes you able to use Tachidesk in your browser</string>
<string name="host_open_in_browser">Open Server WebUI on startup</string>

View File

@@ -62,6 +62,7 @@ actual fun getServerHostItems(viewModel: @Composable () -> SettingsServerHostVie
debugLogsEnabled = serverVm.debugLogsEnabled,
systemTrayEnabled = serverVm.systemTrayEnabled,
downloadPath = serverVm.downloadPath,
downloadAsCbz = serverVm.downloadAsCbz,
webUIEnabled = serverVm.webUIEnabled,
openInBrowserEnabled = serverVm.openInBrowserEnabled,
basicAuthEnabled = serverVm.basicAuthEnabled,
@@ -89,7 +90,10 @@ actual class SettingsServerHostViewModel @Inject constructor(
// Misc
val debugLogsEnabled = serverHostPreferences.debugLogsEnabled().asStateIn(scope)
val systemTrayEnabled = serverHostPreferences.systemTrayEnabled().asStateIn(scope)
// Downloader
val downloadPath = serverHostPreferences.downloadPath().asStateIn(scope)
val downloadAsCbz = serverHostPreferences.downloadAsCbz().asStateIn(scope)
// WebUI
val webUIEnabled = serverHostPreferences.webUIEnabled().asStateIn(scope)
@@ -145,6 +149,7 @@ fun LazyListScope.ServerHostItems(
debugLogsEnabled: PreferenceMutableStateFlow<Boolean>,
systemTrayEnabled: PreferenceMutableStateFlow<Boolean>,
downloadPath: PreferenceMutableStateFlow<String>,
downloadAsCbz: PreferenceMutableStateFlow<Boolean>,
webUIEnabled: PreferenceMutableStateFlow<Boolean>,
openInBrowserEnabled: PreferenceMutableStateFlow<Boolean>,
basicAuthEnabled: PreferenceMutableStateFlow<Boolean>,
@@ -242,6 +247,14 @@ fun LazyListScope.ServerHostItems(
}
)
}
item {
SwitchPreference(
preference = downloadAsCbz,
title = stringResource(MR.strings.host_download_as_cbz),
subtitle = stringResource(MR.strings.host_download_as_cbz_sub),
changeListener = serverSettingChanged
)
}
item {
SwitchPreference(
preference = webUIEnabled,