|
@@ -10,7 +10,6 @@ import androidx.compose.runtime.remember
|
|
import androidx.compose.ui.res.stringResource
|
|
import androidx.compose.ui.res.stringResource
|
|
import eu.kanade.domain.manga.model.orientationType
|
|
import eu.kanade.domain.manga.model.orientationType
|
|
import eu.kanade.domain.manga.model.readingModeType
|
|
import eu.kanade.domain.manga.model.readingModeType
|
|
-import eu.kanade.presentation.util.collectAsState
|
|
|
|
import eu.kanade.tachiyomi.R
|
|
import eu.kanade.tachiyomi.R
|
|
import eu.kanade.tachiyomi.ui.reader.setting.OrientationType
|
|
import eu.kanade.tachiyomi.ui.reader.setting.OrientationType
|
|
import eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences
|
|
import eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences
|
|
@@ -22,6 +21,7 @@ import tachiyomi.presentation.core.components.CheckboxItem
|
|
import tachiyomi.presentation.core.components.HeadingItem
|
|
import tachiyomi.presentation.core.components.HeadingItem
|
|
import tachiyomi.presentation.core.components.SettingsChipRow
|
|
import tachiyomi.presentation.core.components.SettingsChipRow
|
|
import tachiyomi.presentation.core.components.SliderItem
|
|
import tachiyomi.presentation.core.components.SliderItem
|
|
|
|
+import tachiyomi.presentation.core.util.collectAsState
|
|
import java.text.NumberFormat
|
|
import java.text.NumberFormat
|
|
|
|
|
|
private val readingModeOptions = ReadingModeType.entries.map { it.stringRes to it }
|
|
private val readingModeOptions = ReadingModeType.entries.map { it.stringRes to it }
|
|
@@ -98,70 +98,44 @@ private fun ColumnScope.PagerViewerSettings(screenModel: ReaderSettingsScreenMod
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- val cropBorders by screenModel.preferences.cropBorders().collectAsState()
|
|
|
|
CheckboxItem(
|
|
CheckboxItem(
|
|
label = stringResource(R.string.pref_crop_borders),
|
|
label = stringResource(R.string.pref_crop_borders),
|
|
- checked = cropBorders,
|
|
|
|
- onClick = {
|
|
|
|
- screenModel.togglePreference(ReaderPreferences::cropBorders)
|
|
|
|
- },
|
|
|
|
|
|
+ pref = screenModel.preferences.cropBorders(),
|
|
)
|
|
)
|
|
|
|
|
|
- val landscapeZoom by screenModel.preferences.landscapeZoom().collectAsState()
|
|
|
|
CheckboxItem(
|
|
CheckboxItem(
|
|
label = stringResource(R.string.pref_landscape_zoom),
|
|
label = stringResource(R.string.pref_landscape_zoom),
|
|
- checked = landscapeZoom,
|
|
|
|
- onClick = {
|
|
|
|
- screenModel.togglePreference(ReaderPreferences::landscapeZoom)
|
|
|
|
- },
|
|
|
|
|
|
+ pref = screenModel.preferences.landscapeZoom(),
|
|
)
|
|
)
|
|
|
|
|
|
- val navigateToPan by screenModel.preferences.navigateToPan().collectAsState()
|
|
|
|
CheckboxItem(
|
|
CheckboxItem(
|
|
label = stringResource(R.string.pref_navigate_pan),
|
|
label = stringResource(R.string.pref_navigate_pan),
|
|
- checked = navigateToPan,
|
|
|
|
- onClick = {
|
|
|
|
- screenModel.togglePreference(ReaderPreferences::navigateToPan)
|
|
|
|
- },
|
|
|
|
|
|
+ pref = screenModel.preferences.navigateToPan(),
|
|
)
|
|
)
|
|
|
|
|
|
val dualPageSplitPaged by screenModel.preferences.dualPageSplitPaged().collectAsState()
|
|
val dualPageSplitPaged by screenModel.preferences.dualPageSplitPaged().collectAsState()
|
|
CheckboxItem(
|
|
CheckboxItem(
|
|
label = stringResource(R.string.pref_dual_page_split),
|
|
label = stringResource(R.string.pref_dual_page_split),
|
|
- checked = dualPageSplitPaged,
|
|
|
|
- onClick = {
|
|
|
|
- screenModel.togglePreference(ReaderPreferences::dualPageSplitPaged)
|
|
|
|
- },
|
|
|
|
|
|
+ pref = screenModel.preferences.dualPageSplitPaged(),
|
|
)
|
|
)
|
|
|
|
|
|
if (dualPageSplitPaged) {
|
|
if (dualPageSplitPaged) {
|
|
- val dualPageInvertPaged by screenModel.preferences.dualPageInvertPaged().collectAsState()
|
|
|
|
CheckboxItem(
|
|
CheckboxItem(
|
|
label = stringResource(R.string.pref_dual_page_invert),
|
|
label = stringResource(R.string.pref_dual_page_invert),
|
|
- checked = dualPageInvertPaged,
|
|
|
|
- onClick = {
|
|
|
|
- screenModel.togglePreference(ReaderPreferences::dualPageInvertPaged)
|
|
|
|
- },
|
|
|
|
|
|
+ pref = screenModel.preferences.dualPageInvertPaged(),
|
|
)
|
|
)
|
|
}
|
|
}
|
|
|
|
|
|
val dualPageRotateToFit by screenModel.preferences.dualPageRotateToFit().collectAsState()
|
|
val dualPageRotateToFit by screenModel.preferences.dualPageRotateToFit().collectAsState()
|
|
CheckboxItem(
|
|
CheckboxItem(
|
|
label = stringResource(R.string.pref_page_rotate),
|
|
label = stringResource(R.string.pref_page_rotate),
|
|
- checked = dualPageRotateToFit,
|
|
|
|
- onClick = {
|
|
|
|
- screenModel.togglePreference(ReaderPreferences::dualPageRotateToFit)
|
|
|
|
- },
|
|
|
|
|
|
+ pref = screenModel.preferences.dualPageRotateToFit(),
|
|
)
|
|
)
|
|
|
|
|
|
if (dualPageRotateToFit) {
|
|
if (dualPageRotateToFit) {
|
|
- val dualPageRotateToFitInvert by screenModel.preferences.dualPageRotateToFitInvert().collectAsState()
|
|
|
|
CheckboxItem(
|
|
CheckboxItem(
|
|
label = stringResource(R.string.pref_page_rotate_invert),
|
|
label = stringResource(R.string.pref_page_rotate_invert),
|
|
- checked = dualPageRotateToFitInvert,
|
|
|
|
- onClick = {
|
|
|
|
- screenModel.togglePreference(ReaderPreferences::dualPageRotateToFitInvert)
|
|
|
|
- },
|
|
|
|
|
|
+ pref = screenModel.preferences.dualPageRotateToFitInvert(),
|
|
)
|
|
)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -193,55 +167,34 @@ private fun ColumnScope.WebtoonViewerSettings(screenModel: ReaderSettingsScreenM
|
|
},
|
|
},
|
|
)
|
|
)
|
|
|
|
|
|
- val cropBordersWebtoon by screenModel.preferences.cropBordersWebtoon().collectAsState()
|
|
|
|
CheckboxItem(
|
|
CheckboxItem(
|
|
label = stringResource(R.string.pref_crop_borders),
|
|
label = stringResource(R.string.pref_crop_borders),
|
|
- checked = cropBordersWebtoon,
|
|
|
|
- onClick = {
|
|
|
|
- screenModel.togglePreference(ReaderPreferences::cropBordersWebtoon)
|
|
|
|
- },
|
|
|
|
|
|
+ pref = screenModel.preferences.cropBordersWebtoon(),
|
|
)
|
|
)
|
|
|
|
|
|
val dualPageSplitWebtoon by screenModel.preferences.dualPageSplitWebtoon().collectAsState()
|
|
val dualPageSplitWebtoon by screenModel.preferences.dualPageSplitWebtoon().collectAsState()
|
|
CheckboxItem(
|
|
CheckboxItem(
|
|
label = stringResource(R.string.pref_dual_page_split),
|
|
label = stringResource(R.string.pref_dual_page_split),
|
|
- checked = dualPageSplitWebtoon,
|
|
|
|
- onClick = {
|
|
|
|
- screenModel.togglePreference(ReaderPreferences::dualPageSplitWebtoon)
|
|
|
|
- },
|
|
|
|
|
|
+ pref = screenModel.preferences.dualPageSplitWebtoon(),
|
|
)
|
|
)
|
|
|
|
|
|
if (dualPageSplitWebtoon) {
|
|
if (dualPageSplitWebtoon) {
|
|
- val dualPageInvertWebtoon by screenModel.preferences.dualPageInvertWebtoon()
|
|
|
|
- .collectAsState()
|
|
|
|
CheckboxItem(
|
|
CheckboxItem(
|
|
label = stringResource(R.string.pref_dual_page_invert),
|
|
label = stringResource(R.string.pref_dual_page_invert),
|
|
- checked = dualPageInvertWebtoon,
|
|
|
|
- onClick = {
|
|
|
|
- screenModel.togglePreference(ReaderPreferences::dualPageInvertWebtoon)
|
|
|
|
- },
|
|
|
|
|
|
+ pref = screenModel.preferences.dualPageInvertWebtoon(),
|
|
)
|
|
)
|
|
}
|
|
}
|
|
|
|
|
|
if (!isReleaseBuildType) {
|
|
if (!isReleaseBuildType) {
|
|
- val longStripSplitWebtoon by screenModel.preferences.longStripSplitWebtoon()
|
|
|
|
- .collectAsState()
|
|
|
|
CheckboxItem(
|
|
CheckboxItem(
|
|
label = stringResource(R.string.pref_long_strip_split),
|
|
label = stringResource(R.string.pref_long_strip_split),
|
|
- checked = longStripSplitWebtoon,
|
|
|
|
- onClick = {
|
|
|
|
- screenModel.togglePreference(ReaderPreferences::longStripSplitWebtoon)
|
|
|
|
- },
|
|
|
|
|
|
+ pref = screenModel.preferences.longStripSplitWebtoon(),
|
|
)
|
|
)
|
|
}
|
|
}
|
|
|
|
|
|
- val webtoonDoubleTapZoomEnabled by screenModel.preferences.webtoonDoubleTapZoomEnabled().collectAsState()
|
|
|
|
CheckboxItem(
|
|
CheckboxItem(
|
|
label = stringResource(R.string.pref_double_tap_zoom),
|
|
label = stringResource(R.string.pref_double_tap_zoom),
|
|
- checked = webtoonDoubleTapZoomEnabled,
|
|
|
|
- onClick = {
|
|
|
|
- screenModel.togglePreference(ReaderPreferences::webtoonDoubleTapZoomEnabled)
|
|
|
|
- },
|
|
|
|
|
|
+ pref = screenModel.preferences.webtoonDoubleTapZoomEnabled(),
|
|
)
|
|
)
|
|
}
|
|
}
|
|
|
|
|