Bump dependencies

(cherry picked from commit ac306547a0ccd28f45882cba8e3b0138f6d6aedc)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
#	domain/src/main/java/tachiyomi/domain/category/interactor/CreateCategoryWithName.kt
#	gradle/libs.versions.toml
This commit is contained in:
arkon 2023-07-18 19:12:04 -04:00 committed by Jobobby04
parent c061aabfc6
commit db2cf166b7
56 changed files with 133 additions and 118 deletions

View File

@ -18,7 +18,7 @@ class ExtensionInstallerPreference(
override fun key() = "extension_installer" override fun key() = "extension_installer"
val entries get() = ExtensionInstaller.values().run { val entries get() = ExtensionInstaller.entries.run {
if (context.hasMiuiPackageInstaller) { if (context.hasMiuiPackageInstaller) {
filter { it != ExtensionInstaller.PACKAGEINSTALLER } filter { it != ExtensionInstaller.PACKAGEINSTALLER }
} else { } else {

View File

@ -92,8 +92,8 @@ class SetReadStatus(
// SY <-- // SY <--
sealed class Result { sealed class Result {
object Success : Result() data object Success : Result()
object NoChapters : Result() data object NoChapters : Result()
data class InternalError(val error: Throwable) : Result() data class InternalError(val error: Throwable) : Result()
} }
} }

View File

@ -142,7 +142,7 @@ private fun Extension.getIcon(density: Int = DisplayMetrics.DENSITY_DEFAULT): St
} }
sealed class Result<out T> { sealed class Result<out T> {
object Loading : Result<Nothing>() data object Loading : Result<Nothing>()
object Error : Result<Nothing>() data object Error : Result<Nothing>()
data class Success<out T>(val value: T) : Result<T>() data class Success<out T>(val value: T) : Result<T>()
} }

View File

@ -56,7 +56,7 @@ fun GlobalSearchToolbar(
navigateUp = navigateUp, navigateUp = navigateUp,
scrollBehavior = scrollBehavior, scrollBehavior = scrollBehavior,
) )
if (progress in 1 until total) { if (progress in 1..<total) {
LinearProgressIndicator( LinearProgressIndicator(
progress = progress / total.toFloat(), progress = progress / total.toFloat(),
modifier = Modifier modifier = Modifier

View File

@ -474,10 +474,11 @@ private fun MangaScreenSmallImpl(
contentType = MangaScreenItem.METADATA_INFO, contentType = MangaScreenItem.METADATA_INFO,
) { ) {
metadataDescription( metadataDescription(
state = state, state,
openMetadataViewer = onMetadataViewerClicked, onMetadataViewerClicked,
search = { onSearch(it, false) }, ) {
) onSearch(it, false)
}
} }
} }
// SY <-- // SY <--
@ -756,10 +757,11 @@ fun MangaScreenLargeImpl(
) )
// SY --> // SY -->
metadataDescription?.invoke( metadataDescription?.invoke(
state = state, state,
openMetadataViewer = onMetadataViewerClicked, onMetadataViewerClicked,
search = { onSearch(it, false) }, ) {
) onSearch(it, false)
}
// SY <-- // SY <--
ExpandableMangaDescription( ExpandableMangaDescription(
defaultExpandState = true, defaultExpandState = true,

View File

@ -94,7 +94,7 @@ fun MangaBottomActionMenu(
var resetJob: Job? = remember { null } var resetJob: Job? = remember { null }
val onLongClickItem: (Int) -> Unit = { toConfirmIndex -> val onLongClickItem: (Int) -> Unit = { toConfirmIndex ->
haptic.performHapticFeedback(HapticFeedbackType.LongPress) haptic.performHapticFeedback(HapticFeedbackType.LongPress)
(0 until 7).forEach { i -> confirm[i] = i == toConfirmIndex } (0..<7).forEach { i -> confirm[i] = i == toConfirmIndex }
resetJob?.cancel() resetJob?.cancel()
resetJob = scope.launch { resetJob = scope.launch {
delay(1.seconds) delay(1.seconds)
@ -252,7 +252,7 @@ fun LibraryBottomActionMenu(
var resetJob: Job? = remember { null } var resetJob: Job? = remember { null }
val onLongClickItem: (Int) -> Unit = { toConfirmIndex -> val onLongClickItem: (Int) -> Unit = { toConfirmIndex ->
haptic.performHapticFeedback(HapticFeedbackType.LongPress) haptic.performHapticFeedback(HapticFeedbackType.LongPress)
(0 until 5).forEach { i -> confirm[i] = i == toConfirmIndex } (0..<5).forEach { i -> confirm[i] = i == toConfirmIndex }
resetJob?.cancel() resetJob?.cancel()
resetJob = scope.launch { resetJob = scope.launch {
delay(1.seconds) delay(1.seconds)

View File

@ -20,7 +20,9 @@ import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import eu.kanade.presentation.components.ChipBorder
import eu.kanade.presentation.components.SuggestionChip import eu.kanade.presentation.components.SuggestionChip
import eu.kanade.presentation.components.SuggestionChipDefaults
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiTheme
import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.online.all.EHentai import eu.kanade.tachiyomi.source.online.all.EHentai
@ -30,6 +32,8 @@ import exh.metadata.metadata.base.RaisedTag
import exh.source.EH_SOURCE_ID import exh.source.EH_SOURCE_ID
import exh.source.EXH_SOURCE_ID import exh.source.EXH_SOURCE_ID
import exh.util.SourceTagsUtil import exh.util.SourceTagsUtil
import androidx.compose.material3.ChipBorder as ChipBorderM3
import androidx.compose.material3.SuggestionChipDefaults as SuggestionChipDefaultsM3
@Immutable @Immutable
data class DisplayTag( data class DisplayTag(
@ -110,10 +114,17 @@ fun NamespaceTags(
horizontalArrangement = Arrangement.spacedBy(4.dp), horizontalArrangement = Arrangement.spacedBy(4.dp),
) { ) {
tags.forEach { (_, text, search, border) -> tags.forEach { (_, text, search, border) ->
val borderDp = border?.dp
TagsChip( TagsChip(
modifier = Modifier.padding(vertical = 4.dp), modifier = Modifier.padding(vertical = 4.dp),
text = text, text = text,
onClick = { onClick(search) }, onClick = { onClick(search) },
border = borderDp?.let {
SuggestionChipDefaults.suggestionChipBorder(borderWidth = it)
},
borderM3 = borderDp?.let {
SuggestionChipDefaultsM3.suggestionChipBorder(borderWidth = it)
},
) )
} }
} }
@ -127,6 +138,8 @@ fun TagsChip(
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
text: String, text: String,
onClick: (() -> Unit)?, onClick: (() -> Unit)?,
border: ChipBorder? = null,
borderM3: ChipBorderM3? = null,
) { ) {
CompositionLocalProvider(LocalMinimumInteractiveComponentEnforcement provides false) { CompositionLocalProvider(LocalMinimumInteractiveComponentEnforcement provides false) {
if (onClick != null) { if (onClick != null) {
@ -141,6 +154,7 @@ fun TagsChip(
overflow = TextOverflow.Ellipsis, overflow = TextOverflow.Ellipsis,
) )
}, },
border = borderM3,
) )
} else { } else {
SuggestionChip( SuggestionChip(
@ -153,6 +167,7 @@ fun TagsChip(
overflow = TextOverflow.Ellipsis, overflow = TextOverflow.Ellipsis,
) )
}, },
border = border,
) )
} }
} }

View File

@ -140,7 +140,7 @@ object SettingsAppearanceScreen : SearchableSettings {
Preference.PreferenceItem.ListPreference( Preference.PreferenceItem.ListPreference(
pref = uiPreferences.tabletUiMode(), pref = uiPreferences.tabletUiMode(),
title = stringResource(R.string.pref_tablet_ui_mode), title = stringResource(R.string.pref_tablet_ui_mode),
entries = TabletUiMode.values().associateWith { stringResource(it.titleResId) }, entries = TabletUiMode.entries.associateWith { stringResource(it.titleResId) },
onValueChanged = { onValueChanged = {
context.toast(R.string.requires_app_restart) context.toast(R.string.requires_app_restart)
true true
@ -184,7 +184,7 @@ object SettingsAppearanceScreen : SearchableSettings {
var eventType = parser.eventType var eventType = parser.eventType
while (eventType != XmlPullParser.END_DOCUMENT) { while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.START_TAG && parser.name == "locale") { if (eventType == XmlPullParser.START_TAG && parser.name == "locale") {
for (i in 0 until parser.attributeCount) { for (i in 0..<parser.attributeCount) {
if (parser.getAttributeName(i) == "name") { if (parser.getAttributeName(i) == "name") {
val langTag = parser.getAttributeValue(i) val langTag = parser.getAttributeValue(i)
val displayName = LocaleHelper.getDisplayName(langTag) val displayName = LocaleHelper.getDisplayName(langTag)

View File

@ -38,7 +38,7 @@ object SettingsReaderScreen : SearchableSettings {
Preference.PreferenceItem.ListPreference( Preference.PreferenceItem.ListPreference(
pref = readerPref.defaultReadingMode(), pref = readerPref.defaultReadingMode(),
title = stringResource(R.string.pref_viewer_type), title = stringResource(R.string.pref_viewer_type),
entries = ReadingModeType.values().drop(1) entries = ReadingModeType.entries.drop(1)
.associate { it.flagValue to stringResource(it.stringRes) }, .associate { it.flagValue to stringResource(it.stringRes) },
), ),
Preference.PreferenceItem.ListPreference( Preference.PreferenceItem.ListPreference(
@ -117,7 +117,7 @@ object SettingsReaderScreen : SearchableSettings {
Preference.PreferenceItem.ListPreference( Preference.PreferenceItem.ListPreference(
pref = readerPreferences.defaultOrientationType(), pref = readerPreferences.defaultOrientationType(),
title = stringResource(R.string.pref_rotation_type), title = stringResource(R.string.pref_rotation_type),
entries = OrientationType.values().drop(1) entries = OrientationType.entries.drop(1)
.associate { it.flagValue to stringResource(it.stringRes) }, .associate { it.flagValue to stringResource(it.stringRes) },
), ),
Preference.PreferenceItem.ListPreference( Preference.PreferenceItem.ListPreference(

View File

@ -114,7 +114,7 @@ object SettingsSecurityScreen : SearchableSettings {
Preference.PreferenceItem.ListPreference( Preference.PreferenceItem.ListPreference(
pref = securityPreferences.secureScreen(), pref = securityPreferences.secureScreen(),
title = stringResource(R.string.secure_screen), title = stringResource(R.string.secure_screen),
entries = SecurityPreferences.SecureScreenMode.values() entries = SecurityPreferences.SecureScreenMode.entries
.associateWith { stringResource(it.titleResId) }, .associateWith { stringResource(it.titleResId) },
), ),
// SY --> // SY -->

View File

@ -305,7 +305,7 @@ private class ClearDatabaseScreenModel : StateScreenModel<ClearDatabaseScreenMod
} }
sealed class State { sealed class State {
object Loading : State() data object Loading : State()
data class Ready( data class Ready(
val items: List<SourceWithCount>, val items: List<SourceWithCount>,
val selection: List<Long> = emptyList(), val selection: List<Long> = emptyList(),

View File

@ -75,7 +75,7 @@ private fun AppThemesList(
onItemClick: (AppTheme) -> Unit, onItemClick: (AppTheme) -> Unit,
) { ) {
val appThemes = remember { val appThemes = remember {
AppTheme.values() AppTheme.entries
.filterNot { it.titleResId == null || (it == AppTheme.MONET && !DeviceUtil.isDynamicColorAvailable) } .filterNot { it.titleResId == null || (it == AppTheme.MONET && !DeviceUtil.isDynamicColorAvailable) }
} }
LazyRow( LazyRow(

View File

@ -5,7 +5,7 @@ import eu.kanade.presentation.more.stats.data.StatsData
sealed class StatsScreenState { sealed class StatsScreenState {
@Immutable @Immutable
object Loading : StatsScreenState() data object Loading : StatsScreenState()
@Immutable @Immutable
data class Success( data class Success(

View File

@ -24,9 +24,9 @@ import tachiyomi.presentation.core.components.SettingsChipRow
import tachiyomi.presentation.core.components.SliderItem import tachiyomi.presentation.core.components.SliderItem
import java.text.NumberFormat import java.text.NumberFormat
private val readingModeOptions = ReadingModeType.values().map { it.stringRes to it } private val readingModeOptions = ReadingModeType.entries.map { it.stringRes to it }
private val orientationTypeOptions = OrientationType.values().map { it.stringRes to it } private val orientationTypeOptions = OrientationType.entries.map { it.stringRes to it }
private val tappingInvertModeOptions = ReaderPreferences.TappingInvertMode.values().map { it.titleResId to it } private val tappingInvertModeOptions = ReaderPreferences.TappingInvertMode.entries.map { it.titleResId to it }
@Composable @Composable
internal fun ColumnScope.ReadingModePage(screenModel: ReaderSettingsScreenModel) { internal fun ColumnScope.ReadingModePage(screenModel: ReaderSettingsScreenModel) {

View File

@ -29,5 +29,5 @@ object AppInfo {
* *
* @since extension-lib 1.5 * @since extension-lib 1.5
*/ */
fun getSupportedImageMimeTypes(): List<String> = ImageUtil.ImageType.values().map { it.mime } fun getSupportedImageMimeTypes(): List<String> = ImageUtil.ImageType.entries.map { it.mime }
} }

View File

@ -161,7 +161,7 @@ sealed class Location {
} }
} }
object Cache : Location() data object Cache : Location()
fun directory(context: Context): File { fun directory(context: Context): File {
return when (this) { return when (this) {

View File

@ -66,7 +66,7 @@ class BangumiInterceptor(val bangumi: Bangumi) : Interceptor {
private fun addToken(token: String, oidFormBody: FormBody): FormBody { private fun addToken(token: String, oidFormBody: FormBody): FormBody {
val newFormBody = FormBody.Builder() val newFormBody = FormBody.Builder()
for (i in 0 until oidFormBody.size) { for (i in 0..<oidFormBody.size) {
newFormBody.add(oidFormBody.name(i), oidFormBody.value(i)) newFormBody.add(oidFormBody.name(i), oidFormBody.value(i))
} }
newFormBody.add("access_token", token) newFormBody.add("access_token", token)

View File

@ -1,7 +1,7 @@
package eu.kanade.tachiyomi.extension.model package eu.kanade.tachiyomi.extension.model
sealed class LoadResult { sealed class LoadResult {
class Success(val extension: Extension.Installed) : LoadResult() data class Success(val extension: Extension.Installed) : LoadResult()
class Untrusted(val extension: Extension.Untrusted) : LoadResult() data class Untrusted(val extension: Extension.Untrusted) : LoadResult()
object Error : LoadResult() data object Error : LoadResult()
} }

View File

@ -55,13 +55,13 @@ class ExtensionFilterScreenModel(
} }
sealed class ExtensionFilterEvent { sealed class ExtensionFilterEvent {
object FailedFetchingLanguages : ExtensionFilterEvent() data object FailedFetchingLanguages : ExtensionFilterEvent()
} }
sealed class ExtensionFilterState { sealed class ExtensionFilterState {
@Immutable @Immutable
object Loading : ExtensionFilterState() data object Loading : ExtensionFilterState()
@Immutable @Immutable
data class Success( data class Success(

View File

@ -163,7 +163,7 @@ class ExtensionDetailsScreenModel(
} }
sealed class ExtensionDetailsEvent { sealed class ExtensionDetailsEvent {
object Uninstalled : ExtensionDetailsEvent() data object Uninstalled : ExtensionDetailsEvent()
} }
@Immutable @Immutable

View File

@ -54,7 +54,7 @@ class MigrationMangaScreenModel(
} }
sealed class MigrationMangaEvent { sealed class MigrationMangaEvent {
object FailedFetchingFavorites : MigrationMangaEvent() data object FailedFetchingFavorites : MigrationMangaEvent()
} }
@Immutable @Immutable

View File

@ -77,7 +77,7 @@ class MigrateSourceScreenModel(
} }
sealed class Event { sealed class Event {
object FailedFetchingSourcesWithCount : Event() data object FailedFetchingSourcesWithCount : Event()
} }
} }

View File

@ -66,7 +66,7 @@ class SourcesFilterScreenModel(
sealed class SourcesFilterState { sealed class SourcesFilterState {
object Loading : SourcesFilterState() data object Loading : SourcesFilterState()
data class Error( data class Error(
val throwable: Throwable, val throwable: Throwable,

View File

@ -161,7 +161,7 @@ class SourcesScreenModel(
} }
sealed class Event { sealed class Event {
object FailedFetchingSources : Event() data object FailedFetchingSources : Event()
} }
sealed class Dialog { sealed class Dialog {

View File

@ -459,8 +459,8 @@ open class BrowseSourceScreenModel(
} }
sealed class Listing(open val query: String?, open val filters: FilterList) { sealed class Listing(open val query: String?, open val filters: FilterList) {
object Popular : Listing(query = GetRemoteManga.QUERY_POPULAR, filters = FilterList()) data object Popular : Listing(query = GetRemoteManga.QUERY_POPULAR, filters = FilterList())
object Latest : Listing(query = GetRemoteManga.QUERY_LATEST, filters = FilterList()) data object Latest : Listing(query = GetRemoteManga.QUERY_LATEST, filters = FilterList())
data class Search(override val query: String?, override val filters: FilterList) : Listing(query = query, filters = filters) data class Search(override val query: String?, override val filters: FilterList) : Listing(query = query, filters = filters)
companion object { companion object {
@ -475,7 +475,7 @@ open class BrowseSourceScreenModel(
} }
sealed class Dialog { sealed class Dialog {
object Filter : Dialog() data object Filter : Dialog()
data class RemoveManga(val manga: Manga) : Dialog() data class RemoveManga(val manga: Manga) : Dialog()
data class AddDuplicateManga(val manga: Manga, val duplicate: Manga) : Dialog() data class AddDuplicateManga(val manga: Manga, val duplicate: Manga) : Dialog()
data class ChangeMangaCategory( data class ChangeMangaCategory(

View File

@ -180,7 +180,7 @@ enum class SourceFilter {
} }
sealed class SearchItemResult { sealed class SearchItemResult {
object Loading : SearchItemResult() data object Loading : SearchItemResult()
data class Error( data class Error(
val throwable: Throwable, val throwable: Throwable,

View File

@ -108,20 +108,20 @@ class CategoryScreenModel(
} }
sealed class CategoryDialog { sealed class CategoryDialog {
object Create : CategoryDialog() data object Create : CategoryDialog()
data class Rename(val category: Category) : CategoryDialog() data class Rename(val category: Category) : CategoryDialog()
data class Delete(val category: Category) : CategoryDialog() data class Delete(val category: Category) : CategoryDialog()
} }
sealed class CategoryEvent { sealed class CategoryEvent {
sealed class LocalizedMessage(@StringRes val stringRes: Int) : CategoryEvent() sealed class LocalizedMessage(@StringRes val stringRes: Int) : CategoryEvent()
object InternalError : LocalizedMessage(R.string.internal_error) data object InternalError : LocalizedMessage(R.string.internal_error)
} }
sealed class CategoryScreenState { sealed class CategoryScreenState {
@Immutable @Immutable
object Loading : CategoryScreenState() data object Loading : CategoryScreenState()
@Immutable @Immutable
data class Success( data class Success(

View File

@ -114,14 +114,14 @@ class HistoryScreenModel(
} }
sealed class Dialog { sealed class Dialog {
object DeleteAll : Dialog() data object DeleteAll : Dialog()
data class Delete(val history: HistoryWithRelations) : Dialog() data class Delete(val history: HistoryWithRelations) : Dialog()
} }
sealed class Event { sealed class Event {
data class OpenChapter(val chapter: Chapter?) : Event() data class OpenChapter(val chapter: Chapter?) : Event()
object InternalError : Event() data object InternalError : Event()
object HistoryCleared : Event() data object HistoryCleared : Event()
} }
} }

View File

@ -311,8 +311,8 @@ object HomeScreen : Screen() {
sealed class Tab { sealed class Tab {
data class Library(val mangaIdToOpen: Long? = null) : Tab() data class Library(val mangaIdToOpen: Long? = null) : Tab()
object Updates : Tab() data object Updates : Tab()
object History : Tab() data object History : Tab()
data class Browse(val toExtensions: Boolean = false) : Tab() data class Browse(val toExtensions: Boolean = false) : Tab()
data class More(val toDownloads: Boolean) : Tab() data class More(val toDownloads: Boolean) : Tab()
} }

View File

@ -1115,7 +1115,7 @@ class LibraryScreenModel(
} }
sealed class Dialog { sealed class Dialog {
object SettingsSheet : Dialog() data object SettingsSheet : Dialog()
data class ChangeCategory(val manga: List<Manga>, val initialSelection: List<CheckboxState<Category>>) : Dialog() data class ChangeCategory(val manga: List<Manga>, val initialSelection: List<CheckboxState<Category>>) : Dialog()
data class DeleteManga(val manga: List<Manga>) : Dialog() data class DeleteManga(val manga: List<Manga>) : Dialog()
object SyncFavoritesWarning : Dialog() object SyncFavoritesWarning : Dialog()

View File

@ -1354,10 +1354,10 @@ class MangaInfoScreenModel(
// Try to select the items in-between when possible // Try to select the items in-between when possible
val range: IntRange val range: IntRange
if (selectedIndex < selectedPositions[0]) { if (selectedIndex < selectedPositions[0]) {
range = selectedIndex + 1 until selectedPositions[0] range = selectedIndex + 1..<selectedPositions[0]
selectedPositions[0] = selectedIndex selectedPositions[0] = selectedIndex
} else if (selectedIndex > selectedPositions[1]) { } else if (selectedIndex > selectedPositions[1]) {
range = (selectedPositions[1] + 1) until selectedIndex range = (selectedPositions[1] + 1)..<selectedIndex
selectedPositions[1] = selectedIndex selectedPositions[1] = selectedIndex
} else { } else {
// Just select itself // Just select itself
@ -1484,9 +1484,9 @@ class MangaInfoScreenModel(
data class EditMergedSettings(val mergedData: MergedMangaData) : Dialog() data class EditMergedSettings(val mergedData: MergedMangaData) : Dialog()
// SY <-- // SY <--
object SettingsSheet : Dialog() data object SettingsSheet : Dialog()
object TrackSheet : Dialog() data object TrackSheet : Dialog()
object FullCover : Dialog() data object FullCover : Dialog()
} }
fun dismissDialog() { fun dismissDialog() {

View File

@ -130,7 +130,7 @@ private class MoreScreenModel(
} }
sealed class DownloadQueueState { sealed class DownloadQueueState {
object Stopped : DownloadQueueState() data object Stopped : DownloadQueueState()
data class Paused(val pending: Int) : DownloadQueueState() data class Paused(val pending: Int) : DownloadQueueState()
data class Downloading(val pending: Int) : DownloadQueueState() data class Downloading(val pending: Int) : DownloadQueueState()
} }

View File

@ -609,7 +609,7 @@ class ReaderActivity : BaseActivity() {
setOnClickListener { setOnClickListener {
popupMenu( popupMenu(
items = ReadingModeType.values().map { it.flagValue to it.stringRes }, items = ReadingModeType.entries.map { it.flagValue to it.stringRes },
selectedItemId = viewModel.getMangaReadingMode(resolveDefault = false), selectedItemId = viewModel.getMangaReadingMode(resolveDefault = false),
) { ) {
val newReadingMode = ReadingModeType.fromPreference(itemId) val newReadingMode = ReadingModeType.fromPreference(itemId)
@ -671,7 +671,7 @@ class ReaderActivity : BaseActivity() {
setOnClickListener { setOnClickListener {
popupMenu( popupMenu(
items = OrientationType.values().map { it.flagValue to it.stringRes }, items = OrientationType.entries.map { it.flagValue to it.stringRes },
selectedItemId = viewModel.manga?.orientationType?.toInt() selectedItemId = viewModel.manga?.orientationType?.toInt()
?: readerPreferences.defaultOrientationType().get(), ?: readerPreferences.defaultOrientationType().get(),
) { ) {

View File

@ -1157,13 +1157,13 @@ class ReaderViewModel(
} }
sealed class Dialog { sealed class Dialog {
object Loading : Dialog() data object Loading : Dialog()
object Settings : Dialog() data object Settings : Dialog()
data class PageActions(val page: ReaderPage/* SY --> */, val extraPage: ReaderPage? = null /* SY <-- */) : Dialog() data class PageActions(val page: ReaderPage/* SY --> */, val extraPage: ReaderPage? = null /* SY <-- */) : Dialog()
} }
sealed class Event { sealed class Event {
object ReloadViewerChapters : Event() data object ReloadViewerChapters : Event()
data class SetOrientation(val orientation: Int) : Event() data class SetOrientation(val orientation: Int) : Event()
data class SetCoverResult(val result: SetAsCoverResult) : Event() data class SetCoverResult(val result: SetAsCoverResult) : Event()

View File

@ -40,9 +40,9 @@ data class ReaderChapter(val chapter: Chapter) {
} }
sealed class State { sealed class State {
object Wait : State() data object Wait : State()
object Loading : State() data object Loading : State()
class Error(val error: Throwable) : State() data class Error(val error: Throwable) : State()
class Loaded(val pages: List<ReaderPage>) : State() data class Loaded(val pages: List<ReaderPage>) : State()
} }
} }

View File

@ -18,6 +18,6 @@ enum class OrientationType(val prefValue: Int, val flag: Int, @StringRes val str
companion object { companion object {
const val MASK = 0x00000038 const val MASK = 0x00000038
fun fromPreference(preference: Int?): OrientationType = values().find { it.flagValue == preference } ?: DEFAULT fun fromPreference(preference: Int?): OrientationType = entries.find { it.flagValue == preference } ?: DEFAULT
} }
} }

View File

@ -22,7 +22,7 @@ enum class ReadingModeType(val prefValue: Int, @StringRes val stringRes: Int, @D
companion object { companion object {
const val MASK = 0x00000007 const val MASK = 0x00000007
fun fromPreference(preference: Int?): ReadingModeType = values().find { it.flagValue == preference } ?: DEFAULT fun fromPreference(preference: Int?): ReadingModeType = entries.find { it.flagValue == preference } ?: DEFAULT
fun isPagerType(preference: Int): Boolean { fun isPagerType(preference: Int): Boolean {
val mode = fromPreference(preference) val mode = fromPreference(preference)

View File

@ -10,11 +10,11 @@ import eu.kanade.tachiyomi.util.lang.invert
abstract class ViewerNavigation { abstract class ViewerNavigation {
sealed class NavigationRegion(@StringRes val nameRes: Int, val colorRes: Int) { sealed class NavigationRegion(@StringRes val nameRes: Int, val colorRes: Int) {
object MENU : NavigationRegion(R.string.action_menu, R.color.navigation_menu) data object MENU : NavigationRegion(R.string.action_menu, R.color.navigation_menu)
object PREV : NavigationRegion(R.string.nav_zone_prev, R.color.navigation_prev) data object PREV : NavigationRegion(R.string.nav_zone_prev, R.color.navigation_prev)
object NEXT : NavigationRegion(R.string.nav_zone_next, R.color.navigation_next) data object NEXT : NavigationRegion(R.string.nav_zone_next, R.color.navigation_next)
object LEFT : NavigationRegion(R.string.nav_zone_left, R.color.navigation_left) data object LEFT : NavigationRegion(R.string.nav_zone_left, R.color.navigation_left)
object RIGHT : NavigationRegion(R.string.nav_zone_right, R.color.navigation_right) data object RIGHT : NavigationRegion(R.string.nav_zone_right, R.color.navigation_right)
} }
data class Region( data class Region(

View File

@ -307,10 +307,10 @@ class UpdatesScreenModel(
// Try to select the items in-between when possible // Try to select the items in-between when possible
val range: IntRange val range: IntRange
if (selectedIndex < selectedPositions[0]) { if (selectedIndex < selectedPositions[0]) {
range = selectedIndex + 1 until selectedPositions[0] range = selectedIndex + 1..<selectedPositions[0]
selectedPositions[0] = selectedIndex selectedPositions[0] = selectedIndex
} else if (selectedIndex > selectedPositions[1]) { } else if (selectedIndex > selectedPositions[1]) {
range = (selectedPositions[1] + 1) until selectedIndex range = (selectedPositions[1] + 1)..<selectedIndex
selectedPositions[1] = selectedIndex selectedPositions[1] = selectedIndex
} else { } else {
// Just select itself // Just select itself
@ -383,7 +383,7 @@ class UpdatesScreenModel(
} }
sealed class Event { sealed class Event {
object InternalError : Event() data object InternalError : Event()
data class LibraryUpdateTriggered(val started: Boolean) : Event() data class LibraryUpdateTriggered(val started: Boolean) : Event()
} }
} }

View File

@ -27,7 +27,7 @@ object GLUtil {
var maximumTextureSize = 0 var maximumTextureSize = 0
// Iterate through all the configurations to located the maximum texture size // Iterate through all the configurations to located the maximum texture size
for (i in 0 until totalConfigurations[0]) { for (i in 0..<totalConfigurations[0]) {
// Only need to check for width since opengl textures are always squared // Only need to check for width since opengl textures are always squared
egl.eglGetConfigAttrib(display, configurationsList[i], EGL10.EGL_MAX_PBUFFER_WIDTH, textureSize) egl.eglGetConfigAttrib(display, configurationsList[i], EGL10.EGL_MAX_PBUFFER_WIDTH, textureSize)

View File

@ -159,12 +159,12 @@ enum class ComicInfoPublishingStatus(
companion object { companion object {
fun toComicInfoValue(value: Long): String { fun toComicInfoValue(value: Long): String {
return values().firstOrNull { it.sMangaModelValue == value.toInt() }?.comicInfoValue return entries.firstOrNull { it.sMangaModelValue == value.toInt() }?.comicInfoValue
?: UNKNOWN.comicInfoValue ?: UNKNOWN.comicInfoValue
} }
fun toSMangaValue(value: String?): Int { fun toSMangaValue(value: String?): Int {
return values().firstOrNull { it.comicInfoValue == value }?.sMangaModelValue return entries.firstOrNull { it.comicInfoValue == value }?.sMangaModelValue
?: UNKNOWN.sMangaModelValue ?: UNKNOWN.sMangaModelValue
} }
} }

View File

@ -447,7 +447,7 @@ object ImageUtil {
} }
return buildList { return buildList {
val range = 0 until partCount val range = 0..<partCount
for (index in range) { for (index in range) {
// Only continue if the list is empty or there is image remaining // Only continue if the list is empty or there is image remaining
if (isNotEmpty() && imageHeight <= last().bottomOffset) break if (isNotEmpty() && imageHeight <= last().bottomOffset) break
@ -557,7 +557,7 @@ object ImageUtil {
var blackStreak = false var blackStreak = false
var whiteStreak = false var whiteStreak = false
val notOffset = x == left || x == right val notOffset = x == left || x == right
inner@ for ((index, y) in (0 until image.height step image.height / 25).withIndex()) { inner@ for ((index, y) in (0..<image.height step image.height / 25).withIndex()) {
val pixel = image[x, y] val pixel = image[x, y]
val pixelOff = image[x + (if (x < image.width / 2) -offsetX else offsetX), y] val pixelOff = image[x + (if (x < image.width / 2) -offsetX else offsetX), y]
if (pixel.isWhite()) { if (pixel.isWhite()) {

View File

@ -21,10 +21,8 @@ val listOfStringsAdapter = object : ColumnAdapter<List<String>, String> {
} }
val updateStrategyAdapter = object : ColumnAdapter<UpdateStrategy, Long> { val updateStrategyAdapter = object : ColumnAdapter<UpdateStrategy, Long> {
private val enumValues by lazy { UpdateStrategy.values() }
override fun decode(databaseValue: Long): UpdateStrategy = override fun decode(databaseValue: Long): UpdateStrategy =
enumValues.getOrElse(databaseValue.toInt()) { UpdateStrategy.ALWAYS_UPDATE } UpdateStrategy.entries.getOrElse(databaseValue.toInt()) { UpdateStrategy.ALWAYS_UPDATE }
override fun encode(value: UpdateStrategy): Long = value.ordinal.toLong() override fun encode(value: UpdateStrategy): Long = value.ordinal.toLong()
} }

View File

@ -36,7 +36,7 @@ class DeleteCategory(
} }
sealed class Result { sealed class Result {
object Success : Result() data object Success : Result()
data class InternalError(val error: Throwable) : Result() data class InternalError(val error: Throwable) : Result()
} }
} }

View File

@ -29,7 +29,7 @@ class RenameCategory(
suspend fun await(category: Category, name: String) = await(category.id, name) suspend fun await(category: Category, name: String) = await(category.id, name)
sealed class Result { sealed class Result {
object Success : Result() data object Success : Result()
data class InternalError(val error: Throwable) : Result() data class InternalError(val error: Throwable) : Result()
} }
} }

View File

@ -58,8 +58,8 @@ class ReorderCategory(
} }
sealed class Result { sealed class Result {
object Success : Result() data object Success : Result()
object Unchanged : Result() data object Unchanged : Result()
data class InternalError(val error: Throwable) : Result() data class InternalError(val error: Throwable) : Result()
} }

View File

@ -18,7 +18,7 @@ class UpdateCategory(
} }
sealed class Result { sealed class Result {
object Success : Result() data object Success : Result()
data class Error(val error: Exception) : Result() data class Error(val error: Exception) : Result()
} }
} }

View File

@ -2,10 +2,10 @@ package tachiyomi.domain.library.model
sealed class LibraryDisplayMode { sealed class LibraryDisplayMode {
object CompactGrid : LibraryDisplayMode() data object CompactGrid : LibraryDisplayMode()
object ComfortableGrid : LibraryDisplayMode() data object ComfortableGrid : LibraryDisplayMode()
object List : LibraryDisplayMode() data object List : LibraryDisplayMode()
object CoverOnlyGrid : LibraryDisplayMode() data object CoverOnlyGrid : LibraryDisplayMode()
object Serializer { object Serializer {
fun deserialize(serialized: String): LibraryDisplayMode { fun deserialize(serialized: String): LibraryDisplayMode {

View File

@ -22,14 +22,14 @@ data class LibrarySort(
override val mask: Long = 0b00111100L override val mask: Long = 0b00111100L
object Alphabetical : Type(0b00000000) data object Alphabetical : Type(0b00000000)
object LastRead : Type(0b00000100) data object LastRead : Type(0b00000100)
object LastUpdate : Type(0b00001000) data object LastUpdate : Type(0b00001000)
object UnreadCount : Type(0b00001100) data object UnreadCount : Type(0b00001100)
object TotalChapters : Type(0b00010000) data object TotalChapters : Type(0b00010000)
object LatestChapter : Type(0b00010100) data object LatestChapter : Type(0b00010100)
object ChapterFetchDate : Type(0b00011000) data object ChapterFetchDate : Type(0b00011000)
object DateAdded : Type(0b00011100) data object DateAdded : Type(0b00011100)
// SY --> // SY -->
object TagList : Type(0b00100100) object TagList : Type(0b00100100)
@ -48,8 +48,8 @@ data class LibrarySort(
override val mask: Long = 0b01000000L override val mask: Long = 0b01000000L
object Ascending : Direction(0b01000000) data object Ascending : Direction(0b01000000)
object Descending : Direction(0b00000000) data object Descending : Direction(0b00000000)
companion object { companion object {
fun valueOf(flag: Long): Direction { fun valueOf(flag: Long): Direction {

View File

@ -80,8 +80,8 @@ class GetApplicationRelease(
) )
sealed class Result { sealed class Result {
class NewUpdate(val release: Release) : Result() data class NewUpdate(val release: Release) : Result()
object NoNewUpdate : Result() data object NoNewUpdate : Result()
object ThirdPartyInstallation : Result() data object ThirdPartyInstallation : Result()
} }
} }

View File

@ -1,9 +1,9 @@
package tachiyomi.domain.source.model package tachiyomi.domain.source.model
sealed class Pin(val code: Int) { sealed class Pin(val code: Int) {
object Unpinned : Pin(0b00) data object Unpinned : Pin(0b00)
object Pinned : Pin(0b01) data object Pinned : Pin(0b01)
object Actual : Pin(0b10) data object Actual : Pin(0b10)
} }
inline fun Pins(builder: Pins.PinsBuilder.() -> Unit = {}): Pins { inline fun Pins(builder: Pins.PinsBuilder.() -> Unit = {}): Pins {

View File

@ -1,5 +1,5 @@
[versions] [versions]
compiler = "1.4.8" compiler = "1.5.0"
compose-bom = "2023.07.00-alpha01" compose-bom = "2023.07.00-alpha01"
accompanist = "0.31.5-beta" accompanist = "0.31.5-beta"

View File

@ -1,5 +1,5 @@
[versions] [versions]
kotlin_version = "1.8.22" kotlin_version = "1.9.0"
serialization_version = "1.5.1" serialization_version = "1.5.1"
xml_serialization_version = "0.86.1" xml_serialization_version = "0.86.1"

View File

@ -1,5 +1,5 @@
[versions] [versions]
aboutlib_version = "10.8.2" aboutlib_version = "10.8.3"
okhttp_version = "5.0.0-alpha.11" okhttp_version = "5.0.0-alpha.11"
shizuku_version = "12.2.0" shizuku_version = "12.2.0"
sqlite = "2.3.1" sqlite = "2.3.1"
@ -30,7 +30,7 @@ jsoup = "org.jsoup:jsoup:1.16.1"
disklrucache = "com.jakewharton:disklrucache:2.0.2" disklrucache = "com.jakewharton:disklrucache:2.0.2"
unifile = "com.github.tachiyomiorg:unifile:17bec43" unifile = "com.github.tachiyomiorg:unifile:17bec43"
junrar = "com.github.junrar:junrar:7.5.4" junrar = "com.github.junrar:junrar:7.5.5"
zip4j = "net.lingala.zip4j:zip4j:2.11.5" zip4j = "net.lingala.zip4j:zip4j:2.11.5"
sqlite-framework = { module = "androidx.sqlite:sqlite-framework", version.ref = "sqlite" } sqlite-framework = { module = "androidx.sqlite:sqlite-framework", version.ref = "sqlite" }

View File

@ -209,7 +209,7 @@ private fun rememberColumnWidthSums(
gridWidth, gridWidth,
horizontalArrangement.spacing.roundToPx(), horizontalArrangement.spacing.roundToPx(),
).toMutableList().apply { ).toMutableList().apply {
for (i in 1 until size) { for (i in 1..<size) {
this[i] += this[i - 1] this[i] += this[i - 1]
} }
} }

View File

@ -36,8 +36,8 @@ fun UpdatesWidget(data: List<Pair<Long, Bitmap?>>?) {
} else if (data.isEmpty()) { } else if (data.isEmpty()) {
Text(text = stringResource(R.string.information_no_recent)) Text(text = stringResource(R.string.information_no_recent))
} else { } else {
(0 until rowCount).forEach { i -> (0..<rowCount).forEach { i ->
val coverRow = (0 until columnCount).mapNotNull { j -> val coverRow = (0..<columnCount).mapNotNull { j ->
data.getOrNull(j + (i * columnCount)) data.getOrNull(j + (i * columnCount))
} }
if (coverRow.isNotEmpty()) { if (coverRow.isNotEmpty()) {