2022-10-15 17:38:01 +02:00
|
|
|
package eu.kanade.presentation.more.settings.screen
|
|
|
|
|
|
|
|
import android.os.Build
|
2022-10-15 17:58:24 +02:00
|
|
|
import androidx.annotation.StringRes
|
2022-10-15 17:38:01 +02:00
|
|
|
import androidx.compose.runtime.Composable
|
|
|
|
import androidx.compose.runtime.ReadOnlyComposable
|
|
|
|
import androidx.compose.runtime.getValue
|
|
|
|
import androidx.compose.runtime.remember
|
|
|
|
import androidx.compose.ui.platform.LocalView
|
|
|
|
import androidx.compose.ui.res.stringArrayResource
|
|
|
|
import androidx.compose.ui.res.stringResource
|
|
|
|
import eu.kanade.presentation.more.settings.Preference
|
|
|
|
import eu.kanade.presentation.util.collectAsState
|
|
|
|
import eu.kanade.tachiyomi.R
|
|
|
|
import eu.kanade.tachiyomi.ui.reader.setting.OrientationType
|
|
|
|
import eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences
|
|
|
|
import eu.kanade.tachiyomi.ui.reader.setting.ReadingModeType
|
2022-10-22 21:47:09 +02:00
|
|
|
import eu.kanade.tachiyomi.util.system.isReleaseBuildType
|
2022-10-15 17:38:01 +02:00
|
|
|
import uy.kohesive.injekt.Injekt
|
|
|
|
import uy.kohesive.injekt.api.get
|
2023-07-12 04:32:20 +02:00
|
|
|
import java.text.NumberFormat
|
2022-10-15 17:38:01 +02:00
|
|
|
|
2022-11-23 15:14:55 +01:00
|
|
|
object SettingsReaderScreen : SearchableSettings {
|
2022-10-15 17:58:24 +02:00
|
|
|
|
2022-10-15 17:38:01 +02:00
|
|
|
@ReadOnlyComposable
|
|
|
|
@Composable
|
2022-10-15 17:58:24 +02:00
|
|
|
@StringRes
|
|
|
|
override fun getTitleRes() = R.string.pref_category_reader
|
2022-10-15 17:38:01 +02:00
|
|
|
|
|
|
|
@Composable
|
|
|
|
override fun getPreferences(): List<Preference> {
|
|
|
|
val readerPref = remember { Injekt.get<ReaderPreferences>() }
|
|
|
|
return listOf(
|
|
|
|
Preference.PreferenceItem.ListPreference(
|
|
|
|
pref = readerPref.defaultReadingMode(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_viewer_type),
|
2022-10-15 17:38:01 +02:00
|
|
|
entries = ReadingModeType.values().drop(1)
|
2022-10-15 17:58:24 +02:00
|
|
|
.associate { it.flagValue to stringResource(it.stringRes) },
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
Preference.PreferenceItem.ListPreference(
|
|
|
|
pref = readerPref.doubleTapAnimSpeed(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_double_tap_anim_speed),
|
2022-10-15 17:38:01 +02:00
|
|
|
entries = mapOf(
|
2022-10-15 17:58:24 +02:00
|
|
|
1 to stringResource(R.string.double_tap_anim_speed_0),
|
|
|
|
500 to stringResource(R.string.double_tap_anim_speed_normal),
|
|
|
|
250 to stringResource(R.string.double_tap_anim_speed_fast),
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
),
|
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPref.showReadingMode(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_show_reading_mode),
|
|
|
|
subtitle = stringResource(R.string.pref_show_reading_mode_summary),
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPref.showNavigationOverlayOnStart(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_show_navigation_mode),
|
|
|
|
subtitle = stringResource(R.string.pref_show_navigation_mode_summary),
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPref.trueColor(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_true_color),
|
|
|
|
subtitle = stringResource(R.string.pref_true_color_summary),
|
2022-10-15 17:38:01 +02:00
|
|
|
enabled = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O,
|
|
|
|
),
|
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPref.pageTransitions(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_page_transitions),
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
getDisplayGroup(readerPreferences = readerPref),
|
2022-10-20 23:48:13 +02:00
|
|
|
getReadingGroup(readerPreferences = readerPref),
|
2022-10-15 17:38:01 +02:00
|
|
|
getPagedGroup(readerPreferences = readerPref),
|
|
|
|
getWebtoonGroup(readerPreferences = readerPref),
|
|
|
|
getNavigationGroup(readerPreferences = readerPref),
|
|
|
|
getActionsGroup(readerPreferences = readerPref),
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
@Composable
|
|
|
|
private fun getDisplayGroup(readerPreferences: ReaderPreferences): Preference.PreferenceGroup {
|
|
|
|
val fullscreenPref = readerPreferences.fullscreen()
|
|
|
|
val fullscreen by fullscreenPref.collectAsState()
|
|
|
|
return Preference.PreferenceGroup(
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_category_display),
|
2022-10-15 17:38:01 +02:00
|
|
|
preferenceItems = listOf(
|
|
|
|
Preference.PreferenceItem.ListPreference(
|
|
|
|
pref = readerPreferences.defaultOrientationType(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_rotation_type),
|
2022-10-15 17:38:01 +02:00
|
|
|
entries = OrientationType.values().drop(1)
|
2022-10-15 17:58:24 +02:00
|
|
|
.associate { it.flagValue to stringResource(it.stringRes) },
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
Preference.PreferenceItem.ListPreference(
|
|
|
|
pref = readerPreferences.readerTheme(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_reader_theme),
|
2022-10-15 17:38:01 +02:00
|
|
|
entries = mapOf(
|
2022-10-15 17:58:24 +02:00
|
|
|
1 to stringResource(R.string.black_background),
|
|
|
|
2 to stringResource(R.string.gray_background),
|
|
|
|
0 to stringResource(R.string.white_background),
|
|
|
|
3 to stringResource(R.string.automatic_background),
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
),
|
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = fullscreenPref,
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_fullscreen),
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPreferences.cutoutShort(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_cutout_short),
|
2022-10-15 17:38:01 +02:00
|
|
|
enabled = fullscreen &&
|
|
|
|
Build.VERSION.SDK_INT >= Build.VERSION_CODES.P &&
|
|
|
|
LocalView.current.rootWindowInsets?.displayCutout != null, // has cutout
|
|
|
|
),
|
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPreferences.keepScreenOn(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_keep_screen_on),
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPreferences.showPageNumber(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_show_page_number),
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
),
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
2022-10-20 23:48:13 +02:00
|
|
|
@Composable
|
|
|
|
private fun getReadingGroup(readerPreferences: ReaderPreferences): Preference.PreferenceGroup {
|
|
|
|
return Preference.PreferenceGroup(
|
|
|
|
title = stringResource(R.string.pref_category_reading),
|
|
|
|
preferenceItems = listOf(
|
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPreferences.skipRead(),
|
|
|
|
title = stringResource(R.string.pref_skip_read_chapters),
|
|
|
|
),
|
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPreferences.skipFiltered(),
|
|
|
|
title = stringResource(R.string.pref_skip_filtered_chapters),
|
|
|
|
),
|
2023-01-08 21:40:23 +01:00
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPreferences.skipDupe(),
|
|
|
|
title = stringResource(R.string.pref_skip_dupe_chapters),
|
|
|
|
),
|
2022-10-20 23:48:13 +02:00
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPreferences.alwaysShowChapterTransition(),
|
|
|
|
title = stringResource(R.string.pref_always_show_chapter_transition),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
2022-10-15 17:38:01 +02:00
|
|
|
@Composable
|
|
|
|
private fun getPagedGroup(readerPreferences: ReaderPreferences): Preference.PreferenceGroup {
|
|
|
|
val navModePref = readerPreferences.navigationModePager()
|
|
|
|
val imageScaleTypePref = readerPreferences.imageScaleType()
|
|
|
|
val dualPageSplitPref = readerPreferences.dualPageSplitPaged()
|
2023-03-25 03:48:59 +01:00
|
|
|
val rotateToFitPref = readerPreferences.dualPageRotateToFit()
|
2022-10-15 17:38:01 +02:00
|
|
|
|
|
|
|
val navMode by navModePref.collectAsState()
|
|
|
|
val imageScaleType by imageScaleTypePref.collectAsState()
|
|
|
|
val dualPageSplit by dualPageSplitPref.collectAsState()
|
2023-03-25 03:48:59 +01:00
|
|
|
val rotateToFit by rotateToFitPref.collectAsState()
|
2022-10-15 17:38:01 +02:00
|
|
|
|
|
|
|
return Preference.PreferenceGroup(
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pager_viewer),
|
2022-10-15 17:38:01 +02:00
|
|
|
preferenceItems = listOf(
|
|
|
|
Preference.PreferenceItem.ListPreference(
|
|
|
|
pref = navModePref,
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_viewer_nav),
|
2022-10-15 17:38:01 +02:00
|
|
|
entries = stringArrayResource(id = R.array.pager_nav).let {
|
|
|
|
it.indices.zip(it).toMap()
|
|
|
|
},
|
|
|
|
),
|
|
|
|
Preference.PreferenceItem.ListPreference(
|
|
|
|
pref = readerPreferences.pagerNavInverted(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_read_with_tapping_inverted),
|
2022-10-15 17:38:01 +02:00
|
|
|
entries = mapOf(
|
2023-03-20 03:38:14 +01:00
|
|
|
ReaderPreferences.TappingInvertMode.NONE to stringResource(R.string.none),
|
|
|
|
ReaderPreferences.TappingInvertMode.HORIZONTAL to stringResource(R.string.tapping_inverted_horizontal),
|
|
|
|
ReaderPreferences.TappingInvertMode.VERTICAL to stringResource(R.string.tapping_inverted_vertical),
|
|
|
|
ReaderPreferences.TappingInvertMode.BOTH to stringResource(R.string.tapping_inverted_both),
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
enabled = navMode != 5,
|
|
|
|
),
|
|
|
|
Preference.PreferenceItem.ListPreference(
|
|
|
|
pref = imageScaleTypePref,
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_image_scale_type),
|
2022-10-15 17:38:01 +02:00
|
|
|
entries = mapOf(
|
2022-10-15 17:58:24 +02:00
|
|
|
1 to stringResource(R.string.scale_type_fit_screen),
|
|
|
|
2 to stringResource(R.string.scale_type_stretch),
|
|
|
|
3 to stringResource(R.string.scale_type_fit_width),
|
|
|
|
4 to stringResource(R.string.scale_type_fit_height),
|
|
|
|
5 to stringResource(R.string.scale_type_original_size),
|
|
|
|
6 to stringResource(R.string.scale_type_smart_fit),
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
),
|
|
|
|
Preference.PreferenceItem.ListPreference(
|
|
|
|
pref = readerPreferences.zoomStart(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_zoom_start),
|
2022-10-15 17:38:01 +02:00
|
|
|
entries = mapOf(
|
2022-10-15 17:58:24 +02:00
|
|
|
1 to stringResource(R.string.zoom_start_automatic),
|
|
|
|
2 to stringResource(R.string.zoom_start_left),
|
|
|
|
3 to stringResource(R.string.zoom_start_right),
|
|
|
|
4 to stringResource(R.string.zoom_start_center),
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
|
|
|
|
),
|
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPreferences.cropBorders(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_crop_borders),
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
2023-06-24 04:39:59 +02:00
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPreferences.landscapeZoom(),
|
|
|
|
title = stringResource(R.string.pref_landscape_zoom),
|
|
|
|
enabled = imageScaleType == 1,
|
|
|
|
),
|
2023-04-28 04:54:07 +02:00
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPreferences.navigateToPan(),
|
|
|
|
title = stringResource(R.string.pref_navigate_pan),
|
|
|
|
enabled = navMode != 5,
|
|
|
|
),
|
2022-10-15 17:38:01 +02:00
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = dualPageSplitPref,
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_dual_page_split),
|
2023-03-25 03:48:59 +01:00
|
|
|
onValueChanged = {
|
|
|
|
rotateToFitPref.set(false)
|
|
|
|
true
|
|
|
|
},
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPreferences.dualPageInvertPaged(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_dual_page_invert),
|
|
|
|
subtitle = stringResource(R.string.pref_dual_page_invert_summary),
|
2022-10-15 17:38:01 +02:00
|
|
|
enabled = dualPageSplit,
|
|
|
|
),
|
2023-03-25 03:48:59 +01:00
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = rotateToFitPref,
|
|
|
|
title = stringResource(R.string.pref_page_rotate),
|
|
|
|
onValueChanged = {
|
|
|
|
dualPageSplitPref.set(false)
|
|
|
|
true
|
|
|
|
},
|
|
|
|
),
|
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPreferences.dualPageRotateToFitInvert(),
|
|
|
|
title = stringResource(R.string.pref_page_rotate_invert),
|
|
|
|
enabled = rotateToFit,
|
|
|
|
),
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
@Composable
|
|
|
|
private fun getWebtoonGroup(readerPreferences: ReaderPreferences): Preference.PreferenceGroup {
|
2023-07-12 04:32:20 +02:00
|
|
|
val numberFormat = remember { NumberFormat.getPercentInstance() }
|
|
|
|
|
2022-10-15 17:38:01 +02:00
|
|
|
val navModePref = readerPreferences.navigationModeWebtoon()
|
|
|
|
val dualPageSplitPref = readerPreferences.dualPageSplitWebtoon()
|
2023-07-12 04:24:16 +02:00
|
|
|
val webtoonSidePaddingPref = readerPreferences.webtoonSidePadding()
|
2022-10-15 17:38:01 +02:00
|
|
|
|
|
|
|
val navMode by navModePref.collectAsState()
|
|
|
|
val dualPageSplit by dualPageSplitPref.collectAsState()
|
2023-07-12 04:24:16 +02:00
|
|
|
val webtoonSidePadding by webtoonSidePaddingPref.collectAsState()
|
2022-10-15 17:38:01 +02:00
|
|
|
|
|
|
|
return Preference.PreferenceGroup(
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.webtoon_viewer),
|
2022-10-15 17:38:01 +02:00
|
|
|
preferenceItems = listOf(
|
|
|
|
Preference.PreferenceItem.ListPreference(
|
|
|
|
pref = navModePref,
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_viewer_nav),
|
2022-10-15 17:38:01 +02:00
|
|
|
entries = stringArrayResource(id = R.array.webtoon_nav).let {
|
|
|
|
it.indices.zip(it).toMap()
|
|
|
|
},
|
|
|
|
),
|
|
|
|
Preference.PreferenceItem.ListPreference(
|
|
|
|
pref = readerPreferences.webtoonNavInverted(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_read_with_tapping_inverted),
|
2022-10-15 17:38:01 +02:00
|
|
|
entries = mapOf(
|
2023-03-20 03:38:14 +01:00
|
|
|
ReaderPreferences.TappingInvertMode.NONE to stringResource(R.string.none),
|
|
|
|
ReaderPreferences.TappingInvertMode.HORIZONTAL to stringResource(R.string.tapping_inverted_horizontal),
|
|
|
|
ReaderPreferences.TappingInvertMode.VERTICAL to stringResource(R.string.tapping_inverted_vertical),
|
|
|
|
ReaderPreferences.TappingInvertMode.BOTH to stringResource(R.string.tapping_inverted_both),
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
enabled = navMode != 5,
|
|
|
|
),
|
2023-07-12 04:24:16 +02:00
|
|
|
Preference.PreferenceItem.SliderPreference(
|
|
|
|
value = webtoonSidePadding,
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_webtoon_side_padding),
|
2023-07-12 04:32:20 +02:00
|
|
|
subtitle = numberFormat.format(webtoonSidePadding / 100f),
|
2023-07-12 04:24:16 +02:00
|
|
|
min = ReaderPreferences.WEBTOON_PADDING_MIN,
|
|
|
|
max = ReaderPreferences.WEBTOON_PADDING_MAX,
|
|
|
|
onValueChanged = {
|
|
|
|
webtoonSidePaddingPref.set(it)
|
|
|
|
true
|
|
|
|
},
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
Preference.PreferenceItem.ListPreference(
|
|
|
|
pref = readerPreferences.readerHideThreshold(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_hide_threshold),
|
2022-10-15 17:38:01 +02:00
|
|
|
entries = mapOf(
|
2023-03-20 03:38:14 +01:00
|
|
|
ReaderPreferences.ReaderHideThreshold.HIGHEST to stringResource(R.string.pref_highest),
|
|
|
|
ReaderPreferences.ReaderHideThreshold.HIGH to stringResource(R.string.pref_high),
|
|
|
|
ReaderPreferences.ReaderHideThreshold.LOW to stringResource(R.string.pref_low),
|
|
|
|
ReaderPreferences.ReaderHideThreshold.LOWEST to stringResource(R.string.pref_lowest),
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
),
|
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPreferences.cropBordersWebtoon(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_crop_borders),
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = dualPageSplitPref,
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_dual_page_split),
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPreferences.dualPageInvertWebtoon(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_dual_page_invert),
|
|
|
|
subtitle = stringResource(R.string.pref_dual_page_invert_summary),
|
2022-10-15 17:38:01 +02:00
|
|
|
enabled = dualPageSplit,
|
|
|
|
),
|
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPreferences.longStripSplitWebtoon(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_long_strip_split),
|
|
|
|
subtitle = stringResource(R.string.split_tall_images_summary),
|
2022-10-22 21:47:09 +02:00
|
|
|
enabled = !isReleaseBuildType, // TODO: Show in release build when the feature is stable
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
2023-04-26 00:06:49 +02:00
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPreferences.webtoonDoubleTapZoomEnabled(),
|
|
|
|
title = stringResource(R.string.pref_double_tap_zoom),
|
|
|
|
enabled = true,
|
|
|
|
),
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
@Composable
|
|
|
|
private fun getNavigationGroup(readerPreferences: ReaderPreferences): Preference.PreferenceGroup {
|
|
|
|
val readWithVolumeKeysPref = readerPreferences.readWithVolumeKeys()
|
|
|
|
val readWithVolumeKeys by readWithVolumeKeysPref.collectAsState()
|
|
|
|
return Preference.PreferenceGroup(
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_reader_navigation),
|
2022-10-15 17:38:01 +02:00
|
|
|
preferenceItems = listOf(
|
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readWithVolumeKeysPref,
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_read_with_volume_keys),
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPreferences.readWithVolumeKeysInverted(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_read_with_volume_keys_inverted),
|
2022-10-15 17:38:01 +02:00
|
|
|
enabled = readWithVolumeKeys,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
@Composable
|
|
|
|
private fun getActionsGroup(readerPreferences: ReaderPreferences): Preference.PreferenceGroup {
|
|
|
|
return Preference.PreferenceGroup(
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_reader_actions),
|
2022-10-15 17:38:01 +02:00
|
|
|
preferenceItems = listOf(
|
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPreferences.readWithLongTap(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_read_with_long_tap),
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
Preference.PreferenceItem.SwitchPreference(
|
|
|
|
pref = readerPreferences.folderPerManga(),
|
2022-10-15 17:58:24 +02:00
|
|
|
title = stringResource(R.string.pref_create_folder_per_manga),
|
2022-10-20 23:48:13 +02:00
|
|
|
subtitle = stringResource(R.string.pref_create_folder_per_manga_summary),
|
2022-10-15 17:38:01 +02:00
|
|
|
),
|
|
|
|
),
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|