mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-06-05 14:38:44 +02:00
33c62ab711
- Remove analytics/crash reporting - Remove app update check - Remove F-Droid warning - Remove Discord references
170 lines
6.8 KiB
Kotlin
170 lines
6.8 KiB
Kotlin
package eu.kanade.presentation.more
|
|
|
|
import androidx.compose.foundation.layout.Column
|
|
import androidx.compose.foundation.layout.WindowInsets
|
|
import androidx.compose.foundation.layout.WindowInsetsSides
|
|
import androidx.compose.foundation.layout.only
|
|
import androidx.compose.foundation.layout.padding
|
|
import androidx.compose.foundation.layout.systemBars
|
|
import androidx.compose.foundation.layout.windowInsetsPadding
|
|
import androidx.compose.material.icons.Icons
|
|
import androidx.compose.material.icons.automirrored.outlined.HelpOutline
|
|
import androidx.compose.material.icons.automirrored.outlined.Label
|
|
import androidx.compose.material.icons.outlined.CloudOff
|
|
import androidx.compose.material.icons.outlined.GetApp
|
|
import androidx.compose.material.icons.outlined.Info
|
|
import androidx.compose.material.icons.outlined.QueryStats
|
|
import androidx.compose.material.icons.outlined.Settings
|
|
import androidx.compose.material.icons.outlined.Storage
|
|
import androidx.compose.material3.HorizontalDivider
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.ui.Modifier
|
|
import androidx.compose.ui.graphics.vector.ImageVector
|
|
import androidx.compose.ui.platform.LocalUriHandler
|
|
import androidx.compose.ui.res.vectorResource
|
|
import eu.kanade.presentation.more.settings.widget.SwitchPreferenceWidget
|
|
import eu.kanade.presentation.more.settings.widget.TextPreferenceWidget
|
|
import eu.kanade.tachiyomi.R
|
|
import eu.kanade.tachiyomi.ui.more.DownloadQueueState
|
|
import tachiyomi.core.Constants
|
|
import tachiyomi.i18n.MR
|
|
import tachiyomi.presentation.core.components.ScrollbarLazyColumn
|
|
import tachiyomi.presentation.core.components.material.Scaffold
|
|
import tachiyomi.presentation.core.i18n.pluralStringResource
|
|
import tachiyomi.presentation.core.i18n.stringResource
|
|
|
|
@Composable
|
|
fun MoreScreen(
|
|
downloadQueueStateProvider: () -> DownloadQueueState,
|
|
downloadedOnly: Boolean,
|
|
onDownloadedOnlyChange: (Boolean) -> Unit,
|
|
incognitoMode: Boolean,
|
|
onIncognitoModeChange: (Boolean) -> Unit,
|
|
isFDroid: Boolean,
|
|
onClickDownloadQueue: () -> Unit,
|
|
onClickCategories: () -> Unit,
|
|
onClickStats: () -> Unit,
|
|
onClickDataAndStorage: () -> Unit,
|
|
onClickSettings: () -> Unit,
|
|
onClickAbout: () -> Unit,
|
|
) {
|
|
val uriHandler = LocalUriHandler.current
|
|
|
|
Scaffold(
|
|
topBar = {
|
|
Column(
|
|
modifier = Modifier.windowInsetsPadding(
|
|
WindowInsets.systemBars.only(WindowInsetsSides.Top + WindowInsetsSides.Horizontal),
|
|
),
|
|
) {
|
|
if (isFDroid) {
|
|
// Don't really care about slow updaters now
|
|
}
|
|
}
|
|
},
|
|
) { contentPadding ->
|
|
ScrollbarLazyColumn(
|
|
modifier = Modifier.padding(contentPadding),
|
|
) {
|
|
item {
|
|
LogoHeader()
|
|
}
|
|
item {
|
|
SwitchPreferenceWidget(
|
|
title = stringResource(MR.strings.label_downloaded_only),
|
|
subtitle = stringResource(MR.strings.downloaded_only_summary),
|
|
icon = Icons.Outlined.CloudOff,
|
|
checked = downloadedOnly,
|
|
onCheckedChanged = onDownloadedOnlyChange,
|
|
)
|
|
}
|
|
item {
|
|
SwitchPreferenceWidget(
|
|
title = stringResource(MR.strings.pref_incognito_mode),
|
|
subtitle = stringResource(MR.strings.pref_incognito_mode_summary),
|
|
icon = ImageVector.vectorResource(R.drawable.ic_glasses_24dp),
|
|
checked = incognitoMode,
|
|
onCheckedChanged = onIncognitoModeChange,
|
|
)
|
|
}
|
|
|
|
item { HorizontalDivider() }
|
|
|
|
item {
|
|
val downloadQueueState = downloadQueueStateProvider()
|
|
TextPreferenceWidget(
|
|
title = stringResource(MR.strings.label_download_queue),
|
|
subtitle = when (downloadQueueState) {
|
|
DownloadQueueState.Stopped -> null
|
|
is DownloadQueueState.Paused -> {
|
|
val pending = downloadQueueState.pending
|
|
if (pending == 0) {
|
|
stringResource(MR.strings.paused)
|
|
} else {
|
|
"${stringResource(MR.strings.paused)} • ${
|
|
pluralStringResource(
|
|
MR.plurals.download_queue_summary,
|
|
count = pending,
|
|
pending,
|
|
)
|
|
}"
|
|
}
|
|
}
|
|
is DownloadQueueState.Downloading -> {
|
|
val pending = downloadQueueState.pending
|
|
pluralStringResource(MR.plurals.download_queue_summary, count = pending, pending)
|
|
}
|
|
},
|
|
icon = Icons.Outlined.GetApp,
|
|
onPreferenceClick = onClickDownloadQueue,
|
|
)
|
|
}
|
|
item {
|
|
TextPreferenceWidget(
|
|
title = stringResource(MR.strings.categories),
|
|
icon = Icons.AutoMirrored.Outlined.Label,
|
|
onPreferenceClick = onClickCategories,
|
|
)
|
|
}
|
|
item {
|
|
TextPreferenceWidget(
|
|
title = stringResource(MR.strings.label_stats),
|
|
icon = Icons.Outlined.QueryStats,
|
|
onPreferenceClick = onClickStats,
|
|
)
|
|
}
|
|
item {
|
|
TextPreferenceWidget(
|
|
title = stringResource(MR.strings.label_data_storage),
|
|
icon = Icons.Outlined.Storage,
|
|
onPreferenceClick = onClickDataAndStorage,
|
|
)
|
|
}
|
|
|
|
item { HorizontalDivider() }
|
|
|
|
item {
|
|
TextPreferenceWidget(
|
|
title = stringResource(MR.strings.label_settings),
|
|
icon = Icons.Outlined.Settings,
|
|
onPreferenceClick = onClickSettings,
|
|
)
|
|
}
|
|
item {
|
|
TextPreferenceWidget(
|
|
title = stringResource(MR.strings.pref_category_about),
|
|
icon = Icons.Outlined.Info,
|
|
onPreferenceClick = onClickAbout,
|
|
)
|
|
}
|
|
item {
|
|
TextPreferenceWidget(
|
|
title = stringResource(MR.strings.label_help),
|
|
icon = Icons.AutoMirrored.Outlined.HelpOutline,
|
|
onPreferenceClick = { uriHandler.openUri(Constants.URL_HELP) },
|
|
)
|
|
}
|
|
}
|
|
}
|
|
}
|