|
@@ -1,34 +1,43 @@
|
|
|
package eu.kanade.presentation.reader.settings
|
|
|
|
|
|
import androidx.compose.foundation.layout.ColumnScope
|
|
|
+import androidx.compose.foundation.layout.padding
|
|
|
import androidx.compose.runtime.Composable
|
|
|
import androidx.compose.runtime.getValue
|
|
|
+import androidx.compose.ui.Modifier
|
|
|
import androidx.compose.ui.res.stringResource
|
|
|
+import androidx.compose.ui.unit.dp
|
|
|
import eu.kanade.presentation.util.collectAsState
|
|
|
import eu.kanade.tachiyomi.R
|
|
|
import eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences
|
|
|
import eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsScreenModel
|
|
|
import tachiyomi.presentation.core.components.CheckboxItem
|
|
|
import tachiyomi.presentation.core.components.HeadingItem
|
|
|
-import tachiyomi.presentation.core.components.RadioItem
|
|
|
+import tachiyomi.presentation.core.components.SettingsItemsPaddings
|
|
|
+import tachiyomi.presentation.core.components.material.SegmentedButtons
|
|
|
+
|
|
|
+private val themes = listOf(
|
|
|
+ R.string.black_background to 1,
|
|
|
+ R.string.gray_background to 2,
|
|
|
+ R.string.white_background to 0,
|
|
|
+ R.string.automatic_background to 3,
|
|
|
+)
|
|
|
|
|
|
@Composable
|
|
|
internal fun ColumnScope.GeneralPage(screenModel: ReaderSettingsScreenModel) {
|
|
|
- // TODO: show this in a nicer way
|
|
|
HeadingItem(R.string.pref_reader_theme)
|
|
|
val readerTheme by screenModel.preferences.readerTheme().collectAsState()
|
|
|
- listOf(
|
|
|
- R.string.black_background to 1,
|
|
|
- R.string.gray_background to 2,
|
|
|
- R.string.white_background to 0,
|
|
|
- R.string.automatic_background to 3,
|
|
|
- ).map { (titleRes, theme) ->
|
|
|
- RadioItem(
|
|
|
- label = stringResource(titleRes),
|
|
|
- selected = readerTheme == theme,
|
|
|
- onClick = { screenModel.preferences.readerTheme().set(theme) },
|
|
|
- )
|
|
|
- }
|
|
|
+ SegmentedButtons(
|
|
|
+ modifier = Modifier.padding(
|
|
|
+ start = SettingsItemsPaddings.Horizontal,
|
|
|
+ top = 0.dp,
|
|
|
+ end = SettingsItemsPaddings.Horizontal,
|
|
|
+ bottom = SettingsItemsPaddings.Vertical,
|
|
|
+ ),
|
|
|
+ entries = themes.map { stringResource(it.first) },
|
|
|
+ selectedIndex = themes.indexOfFirst { readerTheme == it.second },
|
|
|
+ onClick = { screenModel.preferences.readerTheme().set(themes[it].second) },
|
|
|
+ )
|
|
|
|
|
|
val showPageNumber by screenModel.preferences.showPageNumber().collectAsState()
|
|
|
CheckboxItem(
|