Dantotsu/app/src/main/java/ani/dantotsu/settings/CurrentReaderSettings.kt
2024-03-13 07:57:40 -05:00

69 lines
2.5 KiB
Kotlin

package ani.dantotsu.settings
import ani.dantotsu.settings.saving.PrefManager
import ani.dantotsu.settings.saving.PrefName
import java.io.Serializable
data class CurrentReaderSettings(
var direction: Directions = Directions[PrefManager.getVal(PrefName.Direction)]
?: Directions.TOP_TO_BOTTOM,
var layout: Layouts = Layouts[PrefManager.getVal(PrefName.LayoutReader)]
?: Layouts.CONTINUOUS,
var dualPageMode: DualPageModes = DualPageModes[PrefManager.getVal(PrefName.DualPageModeReader)]
?: DualPageModes.Automatic,
var overScrollMode: Boolean = PrefManager.getVal(PrefName.OverScrollMode),
var trueColors: Boolean = PrefManager.getVal(PrefName.TrueColors),
var rotation: Boolean = PrefManager.getVal(PrefName.Rotation),
var padding: Boolean = PrefManager.getVal(PrefName.Padding),
var hideScrollBar: Boolean = PrefManager.getVal(PrefName.HideScrollBar),
var hidePageNumbers: Boolean = PrefManager.getVal(PrefName.HidePageNumbers),
var horizontalScrollBar: Boolean = PrefManager.getVal(PrefName.HorizontalScrollBar),
var keepScreenOn: Boolean = PrefManager.getVal(PrefName.KeepScreenOn),
var volumeButtons: Boolean = PrefManager.getVal(PrefName.VolumeButtonsReader),
var wrapImages: Boolean = PrefManager.getVal(PrefName.WrapImages),
var longClickImage: Boolean = PrefManager.getVal(PrefName.LongClickImage),
var cropBorders: Boolean = PrefManager.getVal(PrefName.CropBorders),
var cropBorderThreshold: Int = PrefManager.getVal(PrefName.CropBorderThreshold)
) : Serializable {
enum class Directions {
TOP_TO_BOTTOM,
RIGHT_TO_LEFT,
BOTTOM_TO_TOP,
LEFT_TO_RIGHT;
companion object {
operator fun get(value: Int) = values().firstOrNull { it.ordinal == value }
}
}
enum class Layouts {
PAGED,
CONTINUOUS_PAGED,
CONTINUOUS;
companion object {
operator fun get(value: Int) = values().firstOrNull { it.ordinal == value }
}
}
enum class DualPageModes {
No, Automatic, Force;
companion object {
operator fun get(value: Int) = values().firstOrNull { it.ordinal == value }
}
}
companion object {
fun applyWebtoon(settings: CurrentReaderSettings) {
settings.apply {
layout = Layouts.CONTINUOUS
direction = Directions.TOP_TO_BOTTOM
dualPageMode = DualPageModes.No
padding = false
}
}
}
}