From 873742f6f474016cc6f92cd24d294e80ada89400 Mon Sep 17 00:00:00 2001 From: arkon Date: Sat, 29 Jul 2023 16:14:23 -0400 Subject: [PATCH] Remove need for SQLDelight primitive adapters (cherry picked from commit cd91ea9b7723eec378bbbefd916d3da6407d685e) # Conflicts: # app/build.gradle.kts # app/src/main/java/eu/kanade/tachiyomi/AppModule.kt # app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt # data/src/main/java/tachiyomi/data/manga/MangaRepositoryImpl.kt # domain/src/main/java/tachiyomi/domain/history/model/HistoryWithRelations.kt --- app/build.gradle.kts | 1 - .../interactor/SyncChaptersWithSource.kt | 6 +-- .../eu/kanade/domain/chapter/model/Chapter.kt | 6 +-- .../eu/kanade/domain/manga/model/Manga.kt | 2 +- .../eu/kanade/domain/track/model/Track.kt | 4 +- .../presentation/track/TrackInfoDialogHome.kt | 2 +- .../util/ChapterNumberFormatter.kt | 2 +- .../java/eu/kanade/tachiyomi/AppModule.kt | 38 ++++--------------- .../tachiyomi/data/backup/BackupManager.kt | 11 +++--- .../data/backup/models/BackupChapter.kt | 6 +-- .../data/backup/models/BackupManga.kt | 6 +-- .../data/backup/models/BackupTracking.kt | 6 +-- .../tachiyomi/data/database/models/Chapter.kt | 2 +- .../tachiyomi/data/track/TrackService.kt | 2 +- .../tachiyomi/data/track/anilist/Anilist.kt | 4 +- .../source/model/SChapterExtensions.kt | 2 +- .../advanced/process/MigratingManga.kt | 4 +- .../tachiyomi/ui/stats/StatsScreenModel.kt | 6 +-- .../main/java/exh/eh/EHentaiUpdateHelper.kt | 4 +- .../java/tachiyomi/data/DatabaseAdapter.kt | 31 +++++---------- .../main/java/tachiyomi/data/LibraryQuery.kt | 6 +-- .../tachiyomi/data/chapter/ChapterMapper.kt | 2 +- .../tachiyomi/data/history/HistoryMapper.kt | 2 +- .../data/manga/MangaMetadataRepositoryImpl.kt | 6 +-- .../data/manga/MangaRepositoryImpl.kt | 12 +++--- .../data/manga/SearchMetadataMapper.kt | 4 +- .../java/tachiyomi/data/manga/SearchTag.kt | 4 +- .../java/tachiyomi/data/manga/SearchTitle.kt | 4 +- .../java/tachiyomi/data/track/TrackMapper.kt | 2 +- .../sqldelight/tachiyomi/data/chapters.sq | 3 +- .../sqldelight/tachiyomi/data/manga_sync.sq | 4 +- .../tachiyomi/data/search_metadata.sq | 2 +- .../sqldelight/tachiyomi/data/search_tags.sq | 2 +- .../tachiyomi/data/search_titles.sq | 2 +- .../tachiyomi/domain/chapter/model/Chapter.kt | 4 +- .../domain/chapter/model/ChapterUpdate.kt | 2 +- .../chapter/service/ChapterRecognition.kt | 10 ++--- .../domain/chapter/service/MissingChapters.kt | 10 ++--- .../history/model/HistoryWithRelations.kt | 2 +- .../tachiyomi/domain/track/model/Track.kt | 2 +- gradle/libs.versions.toml | 3 +- .../tachiyomi/source/local/LocalSource.kt | 4 +- 42 files changed, 99 insertions(+), 138 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 09a27ca14..f86732df0 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -168,7 +168,6 @@ dependencies { implementation(androidx.paging.compose) implementation(libs.bundles.sqlite) - implementation(libs.sqldelight.primitive.adapters) // SY --> implementation(libs.sqlcipher) // SY <-- diff --git a/app/src/main/java/eu/kanade/domain/chapter/interactor/SyncChaptersWithSource.kt b/app/src/main/java/eu/kanade/domain/chapter/interactor/SyncChaptersWithSource.kt index a863d362a..2bca7653f 100644 --- a/app/src/main/java/eu/kanade/domain/chapter/interactor/SyncChaptersWithSource.kt +++ b/app/src/main/java/eu/kanade/domain/chapter/interactor/SyncChaptersWithSource.kt @@ -152,9 +152,9 @@ class SyncChaptersWithSource( val reAdded = mutableListOf() - val deletedChapterNumbers = TreeSet() - val deletedReadChapterNumbers = TreeSet() - val deletedBookmarkedChapterNumbers = TreeSet() + val deletedChapterNumbers = TreeSet() + val deletedReadChapterNumbers = TreeSet() + val deletedBookmarkedChapterNumbers = TreeSet() toDelete.forEach { chapter -> if (chapter.read) deletedReadChapterNumbers.add(chapter.chapterNumber) diff --git a/app/src/main/java/eu/kanade/domain/chapter/model/Chapter.kt b/app/src/main/java/eu/kanade/domain/chapter/model/Chapter.kt index b3c7edb71..af99f0e63 100644 --- a/app/src/main/java/eu/kanade/domain/chapter/model/Chapter.kt +++ b/app/src/main/java/eu/kanade/domain/chapter/model/Chapter.kt @@ -12,7 +12,7 @@ fun Chapter.toSChapter(): SChapter { it.url = url it.name = name it.date_upload = dateUpload - it.chapter_number = chapterNumber + it.chapter_number = chapterNumber.toFloat() it.scanlator = scanlator } } @@ -22,7 +22,7 @@ fun Chapter.copyFromSChapter(sChapter: SChapter): Chapter { name = sChapter.name, url = sChapter.url, dateUpload = sChapter.date_upload, - chapterNumber = sChapter.chapter_number, + chapterNumber = sChapter.chapter_number.toDouble(), scanlator = sChapter.scanlator?.ifBlank { null }, ) } @@ -48,6 +48,6 @@ fun Chapter.toDbChapter(): DbChapter = ChapterImpl().also { it.last_page_read = lastPageRead.toInt() it.date_fetch = dateFetch it.date_upload = dateUpload - it.chapter_number = chapterNumber + it.chapter_number = chapterNumber.toFloat() it.source_order = sourceOrder.toInt() } diff --git a/app/src/main/java/eu/kanade/domain/manga/model/Manga.kt b/app/src/main/java/eu/kanade/domain/manga/model/Manga.kt index 3680b7124..e11b1b920 100644 --- a/app/src/main/java/eu/kanade/domain/manga/model/Manga.kt +++ b/app/src/main/java/eu/kanade/domain/manga/model/Manga.kt @@ -108,7 +108,7 @@ fun getComicInfo(manga: Manga, chapter: Chapter, chapterUrl: String, categories: title = ComicInfo.Title(chapter.name), series = ComicInfo.Series(manga.title), number = chapter.chapterNumber.takeIf { it >= 0 }?.let { - if ((it.rem(1) == 0.0F)) { + if ((it.rem(1) == 0.0)) { ComicInfo.Number(it.toInt().toString()) } else { ComicInfo.Number(it.toString()) diff --git a/app/src/main/java/eu/kanade/domain/track/model/Track.kt b/app/src/main/java/eu/kanade/domain/track/model/Track.kt index f9712b698..e16846e0e 100644 --- a/app/src/main/java/eu/kanade/domain/track/model/Track.kt +++ b/app/src/main/java/eu/kanade/domain/track/model/Track.kt @@ -22,7 +22,7 @@ fun Track.toDbTrack(): DbTrack = DbTrack.create(syncId).also { it.last_chapter_read = lastChapterRead.toFloat() it.total_chapters = totalChapters.toInt() it.status = status.toInt() - it.score = score + it.score = score.toFloat() it.tracking_url = remoteUrl it.started_reading_date = startDate it.finished_reading_date = finishDate @@ -40,7 +40,7 @@ fun DbTrack.toDomainTrack(idRequired: Boolean = true): Track? { lastChapterRead = last_chapter_read.toDouble(), totalChapters = total_chapters.toLong(), status = status.toLong(), - score = score, + score = score.toDouble(), remoteUrl = tracking_url, startDate = started_reading_date, finishDate = finished_reading_date, diff --git a/app/src/main/java/eu/kanade/presentation/track/TrackInfoDialogHome.kt b/app/src/main/java/eu/kanade/presentation/track/TrackInfoDialogHome.kt index db1b242b3..d9a899d5d 100644 --- a/app/src/main/java/eu/kanade/presentation/track/TrackInfoDialogHome.kt +++ b/app/src/main/java/eu/kanade/presentation/track/TrackInfoDialogHome.kt @@ -98,7 +98,7 @@ fun TrackInfoDialogHome( }, onChaptersClick = { onChapterClick(item) }, score = item.service.displayScore(item.track.toDbTrack()) - .takeIf { supportsScoring && item.track.score != 0F }, + .takeIf { supportsScoring && item.track.score != 0.0 }, onScoreClick = { onScoreClick(item) } .takeIf { supportsScoring }, startDate = remember(item.track.startDate) { dateFormat.format(item.track.startDate) } diff --git a/app/src/main/java/eu/kanade/presentation/util/ChapterNumberFormatter.kt b/app/src/main/java/eu/kanade/presentation/util/ChapterNumberFormatter.kt index eafeb3884..a4f1e4ed1 100644 --- a/app/src/main/java/eu/kanade/presentation/util/ChapterNumberFormatter.kt +++ b/app/src/main/java/eu/kanade/presentation/util/ChapterNumberFormatter.kt @@ -8,6 +8,6 @@ private val formatter = DecimalFormat( DecimalFormatSymbols().apply { decimalSeparator = '.' }, ) -fun formatChapterNumber(chapterNumber: Float): String { +fun formatChapterNumber(chapterNumber: Double): String { return formatter.format(chapterNumber) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/AppModule.kt b/app/src/main/java/eu/kanade/tachiyomi/AppModule.kt index 2923a9d7b..52937d28a 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/AppModule.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/AppModule.kt @@ -5,8 +5,6 @@ import android.os.Build import androidx.core.content.ContextCompat import androidx.sqlite.db.SupportSQLiteDatabase import androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory -import app.cash.sqldelight.adapter.primitive.FloatColumnAdapter -import app.cash.sqldelight.adapter.primitive.IntColumnAdapter import app.cash.sqldelight.db.SqlDriver import app.cash.sqldelight.driver.android.AndroidSqliteDriver import eu.kanade.domain.base.BasePreferences @@ -44,19 +42,14 @@ import tachiyomi.core.preference.PreferenceStore import tachiyomi.core.provider.AndroidBackupFolderProvider import tachiyomi.core.provider.AndroidDownloadFolderProvider import tachiyomi.data.AndroidDatabaseHandler -import tachiyomi.data.Chapters import tachiyomi.data.Database import tachiyomi.data.DatabaseHandler +import tachiyomi.data.DateColumnAdapter import tachiyomi.data.History -import tachiyomi.data.Manga_sync import tachiyomi.data.Mangas -import tachiyomi.data.Search_metadata -import tachiyomi.data.Search_tags -import tachiyomi.data.Search_titles -import tachiyomi.data.dateAdapter -import tachiyomi.data.listOfStringsAdapter -import tachiyomi.data.listOfStringsAndAdapter -import tachiyomi.data.updateStrategyAdapter +import tachiyomi.data.StringListAndColumnAdapter +import tachiyomi.data.StringListColumnAdapter +import tachiyomi.data.UpdateStrategyColumnAdapter import tachiyomi.domain.UnsortedPreferences import tachiyomi.domain.backup.service.BackupPreferences import tachiyomi.domain.download.service.DownloadPreferences @@ -127,31 +120,16 @@ class AppModule(val app: Application) : InjektModule { addSingletonFactory { Database( driver = get(), - chaptersAdapter = Chapters.Adapter( - chapter_numberAdapter = FloatColumnAdapter, - ), historyAdapter = History.Adapter( - last_readAdapter = dateAdapter, - ), - manga_syncAdapter = Manga_sync.Adapter( - scoreAdapter = FloatColumnAdapter, + last_readAdapter = DateColumnAdapter, ), mangasAdapter = Mangas.Adapter( - genreAdapter = listOfStringsAdapter, - update_strategyAdapter = updateStrategyAdapter, + genreAdapter = StringListColumnAdapter, + update_strategyAdapter = UpdateStrategyColumnAdapter, // SY --> - filtered_scanlatorsAdapter = listOfStringsAndAdapter, + filtered_scanlatorsAdapter = StringListAndColumnAdapter, // SY <-- ), - search_metadataAdapter = Search_metadata.Adapter( - extra_versionAdapter = IntColumnAdapter, - ), - search_tagsAdapter = Search_tags.Adapter( - typeAdapter = IntColumnAdapter, - ), - search_titlesAdapter = Search_titles.Adapter( - typeAdapter = IntColumnAdapter, - ), ) } addSingletonFactory { AndroidDatabaseHandler(get(), get()) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt index c0ab46cef..f37eed49d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt @@ -44,15 +44,14 @@ import logcat.LogPriority import okio.buffer import okio.gzip import okio.sink -import tachiyomi.core.util.lang.toLong import tachiyomi.core.util.system.logcat import tachiyomi.data.DatabaseHandler import tachiyomi.data.Manga_sync import tachiyomi.data.Mangas -import tachiyomi.data.listOfStringsAndAdapter +import tachiyomi.data.StringListAndColumnAdapter +import tachiyomi.data.UpdateStrategyColumnAdapter import tachiyomi.data.manga.mangaMapper import tachiyomi.data.manga.mergedMangaReferenceMapper -import tachiyomi.data.updateStrategyAdapter import tachiyomi.domain.backup.service.BackupPreferences import tachiyomi.domain.category.interactor.GetCategories import tachiyomi.domain.category.model.Category @@ -484,7 +483,7 @@ class BackupManager( track.last_chapter_read, track.total_chapters, track.status, - track.score.toDouble(), + track.score, track.remote_url, track.start_date, track.finish_date, @@ -608,10 +607,10 @@ class BackupManager( coverLastModified = manga.coverLastModified, dateAdded = manga.dateAdded, // SY --> - filteredScanlators = manga.filteredScanlators?.let(listOfStringsAndAdapter::encode), + filteredScanlators = manga.filteredScanlators?.let(StringListAndColumnAdapter::encode), // SY <-- mangaId = manga.id, - updateStrategy = manga.updateStrategy.let(updateStrategyAdapter::encode), + updateStrategy = manga.updateStrategy.let(UpdateStrategyColumnAdapter::encode), ) } return manga.id diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupChapter.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupChapter.kt index ed42a75ad..6d8cba4e2 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupChapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupChapter.kt @@ -26,7 +26,7 @@ data class BackupChapter( return Chapter.create().copy( url = this@BackupChapter.url, name = this@BackupChapter.name, - chapterNumber = this@BackupChapter.chapterNumber, + chapterNumber = this@BackupChapter.chapterNumber.toDouble(), scanlator = this@BackupChapter.scanlator, read = this@BackupChapter.read, bookmark = this@BackupChapter.bookmark, @@ -39,11 +39,11 @@ data class BackupChapter( } } -val backupChapterMapper = { _: Long, _: Long, url: String, name: String, scanlator: String?, read: Boolean, bookmark: Boolean, lastPageRead: Long, chapterNumber: Float, source_order: Long, dateFetch: Long, dateUpload: Long, lastModifiedAt: Long -> +val backupChapterMapper = { _: Long, _: Long, url: String, name: String, scanlator: String?, read: Boolean, bookmark: Boolean, lastPageRead: Long, chapterNumber: Double, source_order: Long, dateFetch: Long, dateUpload: Long, lastModifiedAt: Long -> BackupChapter( url = url, name = name, - chapterNumber = chapterNumber, + chapterNumber = chapterNumber.toFloat(), scanlator = scanlator, read = read, bookmark = bookmark, diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt index e32fc151f..204c64ad5 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt @@ -4,7 +4,7 @@ import eu.kanade.tachiyomi.source.model.UpdateStrategy import eu.kanade.tachiyomi.ui.reader.setting.ReadingModeType import kotlinx.serialization.Serializable import kotlinx.serialization.protobuf.ProtoNumber -import tachiyomi.data.listOfStringsAndAdapter +import tachiyomi.data.StringListAndColumnAdapter import tachiyomi.domain.chapter.model.Chapter import tachiyomi.domain.manga.model.CustomMangaInfo import tachiyomi.domain.manga.model.Manga @@ -79,7 +79,7 @@ data class BackupManga( chapterFlags = this@BackupManga.chapterFlags.toLong(), updateStrategy = this@BackupManga.updateStrategy, lastModifiedAt = this@BackupManga.lastModifiedAt, - filteredScanlators = this@BackupManga.filtered_scanlators?.let(listOfStringsAndAdapter::decode), + filteredScanlators = this@BackupManga.filtered_scanlators?.let(StringListAndColumnAdapter::decode), ) } @@ -141,7 +141,7 @@ data class BackupManga( lastModifiedAt = manga.lastModifiedAt, favoriteModifiedAt = manga.favoriteModifiedAt, // SY --> - filtered_scanlators = manga.filteredScanlators?.let(listOfStringsAndAdapter::encode), + filtered_scanlators = manga.filteredScanlators?.let(StringListAndColumnAdapter::encode), ).also { backupManga -> customMangaInfo?.let { backupManga.customTitle = it.title diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupTracking.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupTracking.kt index e9153ad74..0cbbf51a0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupTracking.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupTracking.kt @@ -44,7 +44,7 @@ data class BackupTracking( title = this@BackupTracking.title, lastChapterRead = this@BackupTracking.lastChapterRead.toDouble(), totalChapters = this@BackupTracking.totalChapters.toLong(), - score = this@BackupTracking.score, + score = this@BackupTracking.score.toDouble(), status = this@BackupTracking.status.toLong(), startDate = this@BackupTracking.startedReadingDate, finishDate = this@BackupTracking.finishedReadingDate, @@ -54,7 +54,7 @@ data class BackupTracking( } val backupTrackMapper = { - _: Long, _: Long, syncId: Long, mediaId: Long, libraryId: Long?, title: String, lastChapterRead: Double, totalChapters: Long, status: Long, score: Float, remoteUrl: String, startDate: Long, finishDate: Long -> + _: Long, _: Long, syncId: Long, mediaId: Long, libraryId: Long?, title: String, lastChapterRead: Double, totalChapters: Long, status: Long, score: Double, remoteUrl: String, startDate: Long, finishDate: Long -> BackupTracking( syncId = syncId.toInt(), mediaId = mediaId, @@ -63,7 +63,7 @@ val backupTrackMapper = { title = title, lastChapterRead = lastChapterRead.toFloat(), totalChapters = totalChapters.toInt(), - score = score, + score = score.toFloat(), status = status.toInt(), startedReadingDate = startDate, finishedReadingDate = finishDate, diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/models/Chapter.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/models/Chapter.kt index be1d72b08..4ff50483e 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/models/Chapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/models/Chapter.kt @@ -36,7 +36,7 @@ fun Chapter.toDomainChapter(): DomainChapter? { url = url, name = name, dateUpload = date_upload, - chapterNumber = chapter_number, + chapterNumber = chapter_number.toDouble(), scanlator = scanlator, lastModifiedAt = last_modified, ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/TrackService.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/TrackService.kt index 02c92c2b7..a24afd2ff 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/TrackService.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/TrackService.kt @@ -65,7 +65,7 @@ abstract class TrackService(val id: Long) { abstract fun getScoreList(): List // TODO: Store all scores as 10 point in the future maybe? - open fun get10PointScore(track: DomainTrack): Float { + open fun get10PointScore(track: DomainTrack): Double { return track.score } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/Anilist.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/Anilist.kt index c40c4438a..e5718acf0 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/Anilist.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/Anilist.kt @@ -93,9 +93,9 @@ class Anilist(id: Long) : TrackService(id), DeletableTrackService { } } - override fun get10PointScore(track: DomainTrack): Float { + override fun get10PointScore(track: DomainTrack): Double { // Score is stored in 100 point format - return track.score / 10f + return track.score / 10.0 } override fun indexToScore(index: Int): Float { diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/model/SChapterExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/source/model/SChapterExtensions.kt index ad13c090a..0fd2f860f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/model/SChapterExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/model/SChapterExtensions.kt @@ -6,6 +6,6 @@ fun SChapter.copyFrom(other: Chapters) { name = other.name url = other.url date_upload = other.date_upload - chapter_number = other.chapter_number + chapter_number = other.chapter_number.toFloat() scanlator = other.scanlator } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigratingManga.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigratingManga.kt index 434ca7c27..73c2b9c8d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigratingManga.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/process/MigratingManga.kt @@ -30,11 +30,11 @@ class MigratingManga( } data class ChapterInfo( - val latestChapter: Float?, + val latestChapter: Double?, val chapterCount: Int, ) { fun getFormattedLatestChapter(context: Context): String { - return if (latestChapter != null && latestChapter > 0f) { + return if (latestChapter != null && latestChapter > 0.0) { context.getString( R.string.latest_, DecimalFormat("#.#").format(latestChapter), diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/stats/StatsScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/stats/StatsScreenModel.kt index 73b8ab8cd..8c17134d3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/stats/StatsScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/stats/StatsScreenModel.kt @@ -158,15 +158,13 @@ class StatsScreenModel( private fun getTrackMeanScore(scoredMangaTrackMap: Map>): Double { return scoredMangaTrackMap .map { (_, tracks) -> - tracks.map { - get10PointScore(it) - }.average() + tracks.map(::get10PointScore).average() } .fastFilter { !it.isNaN() } .average() } - private fun get10PointScore(track: Track): Float { + private fun get10PointScore(track: Track): Double { val service = trackManager.getService(track.syncId)!! return service.get10PointScore(track) } diff --git a/app/src/main/java/exh/eh/EHentaiUpdateHelper.kt b/app/src/main/java/exh/eh/EHentaiUpdateHelper.kt index 43437d28e..31917f680 100644 --- a/app/src/main/java/exh/eh/EHentaiUpdateHelper.kt +++ b/app/src/main/java/exh/eh/EHentaiUpdateHelper.kt @@ -243,7 +243,7 @@ class EHentaiUpdateHelper(context: Context) { }, dateFetch = chapter.dateFetch, dateUpload = chapter.dateUpload, - chapterNumber = -1F, + chapterNumber = -1.0, scanlator = null, sourceOrder = -1, lastModifiedAt = 0, @@ -256,7 +256,7 @@ class EHentaiUpdateHelper(context: Context) { val newChapters = mutableListOf() chapters.mapIndexed { index, chapter -> val name = "v${index + 1}: " + chapter.name.substringAfter(" ") - val chapterNumber = index + 1f + val chapterNumber = index + 1.0 val sourceOrder = chapters.lastIndex - index.toLong() when (chapter.id) { -1L -> newChapters.add( diff --git a/data/src/main/java/tachiyomi/data/DatabaseAdapter.kt b/data/src/main/java/tachiyomi/data/DatabaseAdapter.kt index b545a5e2a..75594c091 100644 --- a/data/src/main/java/tachiyomi/data/DatabaseAdapter.kt +++ b/data/src/main/java/tachiyomi/data/DatabaseAdapter.kt @@ -4,23 +4,23 @@ import app.cash.sqldelight.ColumnAdapter import eu.kanade.tachiyomi.source.model.UpdateStrategy import java.util.Date -val dateAdapter = object : ColumnAdapter { +object DateColumnAdapter : ColumnAdapter { override fun decode(databaseValue: Long): Date = Date(databaseValue) override fun encode(value: Date): Long = value.time } -private const val listOfStringsSeparator = ", " -val listOfStringsAdapter = object : ColumnAdapter, String> { +private const val LIST_OF_STRINGS_SEPARATOR = ", " +object StringListColumnAdapter : ColumnAdapter, String> { override fun decode(databaseValue: String) = if (databaseValue.isEmpty()) { emptyList() } else { - databaseValue.split(listOfStringsSeparator) + databaseValue.split(LIST_OF_STRINGS_SEPARATOR) } - override fun encode(value: List) = value.joinToString(separator = listOfStringsSeparator) + override fun encode(value: List) = value.joinToString(separator = LIST_OF_STRINGS_SEPARATOR) } -val updateStrategyAdapter = object : ColumnAdapter { +object UpdateStrategyColumnAdapter : ColumnAdapter { override fun decode(databaseValue: Long): UpdateStrategy = UpdateStrategy.entries.getOrElse(databaseValue.toInt()) { UpdateStrategy.ALWAYS_UPDATE } @@ -28,25 +28,14 @@ val updateStrategyAdapter = object : ColumnAdapter { } // SY --> -private const val listOfStringsAndSeparator = " & " -val listOfStringsAndAdapter = object : ColumnAdapter, String> { +private const val LIST_OF_STRINGS_AND_SEPARATOR = " & " +object StringListAndColumnAdapter : ColumnAdapter, String> { override fun decode(databaseValue: String) = if (databaseValue.isEmpty()) { emptyList() } else { - databaseValue.split(listOfStringsAndSeparator) + databaseValue.split(LIST_OF_STRINGS_AND_SEPARATOR) } - override fun encode(value: List) = value.joinToString(separator = listOfStringsAndSeparator) -} - -private const val listOfLongsSeparator = "/" -val listOfLongsAdapter = object : ColumnAdapter, String> { - override fun decode(databaseValue: String) = - if (databaseValue.isEmpty()) { - emptyList() - } else { - databaseValue.split(listOfLongsSeparator).mapNotNull { it.toLongOrNull() } - } - override fun encode(value: List) = value.joinToString(separator = listOfLongsSeparator) + override fun encode(value: List) = value.joinToString(separator = LIST_OF_STRINGS_AND_SEPARATOR) } // SY <-- diff --git a/data/src/main/java/tachiyomi/data/LibraryQuery.kt b/data/src/main/java/tachiyomi/data/LibraryQuery.kt index 2b29951d7..0e5047610 100644 --- a/data/src/main/java/tachiyomi/data/LibraryQuery.kt +++ b/data/src/main/java/tachiyomi/data/LibraryQuery.kt @@ -15,7 +15,7 @@ private val mapper = { cursor: SqlCursor -> artist = cursor.getString(3), author = cursor.getString(4), description = cursor.getString(5), - genre = cursor.getString(6)?.let(listOfStringsAdapter::decode), + genre = cursor.getString(6)?.let(StringListColumnAdapter::decode), title = cursor.getString(7)!!, status = cursor.getLong(8)!!, thumbnail_url = cursor.getString(9), @@ -27,8 +27,8 @@ private val mapper = { cursor: SqlCursor -> chapter_flags = cursor.getLong(15)!!, cover_last_modified = cursor.getLong(16)!!, date_added = cursor.getLong(17)!!, - filtered_scanlators = cursor.getString(18)?.let(listOfStringsAndAdapter::decode), - update_strategy = updateStrategyAdapter.decode(cursor.getLong(19)!!), + filtered_scanlators = cursor.getString(18)?.let(StringListAndColumnAdapter::decode), + update_strategy = UpdateStrategyColumnAdapter.decode(cursor.getLong(19)!!), calculate_interval = cursor.getLong(20)!!, last_modified_at = cursor.getLong(21)!!, favorite_modified_at = cursor.getLong(22), diff --git a/data/src/main/java/tachiyomi/data/chapter/ChapterMapper.kt b/data/src/main/java/tachiyomi/data/chapter/ChapterMapper.kt index b91ccd7b4..71ae1720e 100644 --- a/data/src/main/java/tachiyomi/data/chapter/ChapterMapper.kt +++ b/data/src/main/java/tachiyomi/data/chapter/ChapterMapper.kt @@ -2,7 +2,7 @@ package tachiyomi.data.chapter import tachiyomi.domain.chapter.model.Chapter -val chapterMapper: (Long, Long, String, String, String?, Boolean, Boolean, Long, Float, Long, Long, Long, Long) -> Chapter = +val chapterMapper: (Long, Long, String, String, String?, Boolean, Boolean, Long, Double, Long, Long, Long, Long) -> Chapter = { id, mangaId, url, name, scanlator, read, bookmark, lastPageRead, chapterNumber, sourceOrder, dateFetch, dateUpload, lastModifiedAt -> Chapter( id = id, diff --git a/data/src/main/java/tachiyomi/data/history/HistoryMapper.kt b/data/src/main/java/tachiyomi/data/history/HistoryMapper.kt index 7235405f3..2adf9bcd0 100644 --- a/data/src/main/java/tachiyomi/data/history/HistoryMapper.kt +++ b/data/src/main/java/tachiyomi/data/history/HistoryMapper.kt @@ -14,7 +14,7 @@ val historyMapper: (Long, Long, Date?, Long) -> History = { id, chapterId, readA ) } -val historyWithRelationsMapper: (Long, Long, Long, String, String?, Long, Boolean, Long, Float, Date?, Long) -> HistoryWithRelations = { +val historyWithRelationsMapper: (Long, Long, Long, String, String?, Long, Boolean, Long, Double, Date?, Long) -> HistoryWithRelations = { historyId, mangaId, chapterId, title, thumbnailUrl, sourceId, isFavorite, coverLastModified, chapterNumber, readAt, readDuration -> HistoryWithRelations( id = historyId, diff --git a/data/src/main/java/tachiyomi/data/manga/MangaMetadataRepositoryImpl.kt b/data/src/main/java/tachiyomi/data/manga/MangaMetadataRepositoryImpl.kt index 3b9757eb7..aa9070bfa 100644 --- a/data/src/main/java/tachiyomi/data/manga/MangaMetadataRepositoryImpl.kt +++ b/data/src/main/java/tachiyomi/data/manga/MangaMetadataRepositoryImpl.kt @@ -44,15 +44,15 @@ class MangaMetadataRepositoryImpl( handler.await(true) { flatMetadata.metadata.run { - search_metadataQueries.upsert(mangaId, uploader, extra, indexedExtra, extraVersion) + search_metadataQueries.upsert(mangaId, uploader, extra, indexedExtra, extraVersion.toLong()) } search_tagsQueries.deleteByManga(flatMetadata.metadata.mangaId) flatMetadata.tags.forEach { - search_tagsQueries.insert(it.mangaId, it.namespace, it.name, it.type) + search_tagsQueries.insert(it.mangaId, it.namespace, it.name, it.type.toLong()) } search_titlesQueries.deleteByManga(flatMetadata.metadata.mangaId) flatMetadata.titles.forEach { - search_titlesQueries.insert(it.mangaId, it.title, it.type) + search_titlesQueries.insert(it.mangaId, it.title, it.type.toLong()) } } } diff --git a/data/src/main/java/tachiyomi/data/manga/MangaRepositoryImpl.kt b/data/src/main/java/tachiyomi/data/manga/MangaRepositoryImpl.kt index 85df805b4..3289b1a8d 100644 --- a/data/src/main/java/tachiyomi/data/manga/MangaRepositoryImpl.kt +++ b/data/src/main/java/tachiyomi/data/manga/MangaRepositoryImpl.kt @@ -6,9 +6,9 @@ import logcat.LogPriority import tachiyomi.core.util.system.logcat import tachiyomi.data.AndroidDatabaseHandler import tachiyomi.data.DatabaseHandler -import tachiyomi.data.listOfStringsAdapter -import tachiyomi.data.listOfStringsAndAdapter -import tachiyomi.data.updateStrategyAdapter +import tachiyomi.data.StringListAndColumnAdapter +import tachiyomi.data.StringListColumnAdapter +import tachiyomi.data.UpdateStrategyColumnAdapter import tachiyomi.domain.library.model.LibraryManga import tachiyomi.domain.manga.model.Manga import tachiyomi.domain.manga.model.MangaUpdate @@ -143,7 +143,7 @@ class MangaRepositoryImpl( artist = value.artist, author = value.author, description = value.description, - genre = value.genre?.let(listOfStringsAdapter::encode), + genre = value.genre?.let(StringListColumnAdapter::encode), title = value.title, status = value.status, thumbnailUrl = value.thumbnailUrl, @@ -157,10 +157,10 @@ class MangaRepositoryImpl( coverLastModified = value.coverLastModified, dateAdded = value.dateAdded, // SY --> - filteredScanlators = value.filteredScanlators?.let(listOfStringsAndAdapter::encode), + filteredScanlators = value.filteredScanlators?.let(StringListAndColumnAdapter::encode), // SY <-- mangaId = value.id, - updateStrategy = value.updateStrategy?.let(updateStrategyAdapter::encode), + updateStrategy = value.updateStrategy?.let(UpdateStrategyColumnAdapter::encode), ) } } diff --git a/data/src/main/java/tachiyomi/data/manga/SearchMetadataMapper.kt b/data/src/main/java/tachiyomi/data/manga/SearchMetadataMapper.kt index b2bc2cd80..8ac0ff4f4 100644 --- a/data/src/main/java/tachiyomi/data/manga/SearchMetadataMapper.kt +++ b/data/src/main/java/tachiyomi/data/manga/SearchMetadataMapper.kt @@ -2,13 +2,13 @@ package tachiyomi.data.manga import exh.metadata.sql.models.SearchMetadata -val searchMetadataMapper: (Long, String?, String, String?, Int) -> SearchMetadata = +val searchMetadataMapper: (Long, String?, String, String?, Long) -> SearchMetadata = { mangaId, uploader, extra, indexedExtra, extraVersion -> SearchMetadata( mangaId = mangaId, uploader = uploader, extra = extra, indexedExtra = indexedExtra, - extraVersion = extraVersion, + extraVersion = extraVersion.toInt(), ) } diff --git a/data/src/main/java/tachiyomi/data/manga/SearchTag.kt b/data/src/main/java/tachiyomi/data/manga/SearchTag.kt index 699a10931..6445fbd08 100644 --- a/data/src/main/java/tachiyomi/data/manga/SearchTag.kt +++ b/data/src/main/java/tachiyomi/data/manga/SearchTag.kt @@ -2,13 +2,13 @@ package tachiyomi.data.manga import exh.metadata.sql.models.SearchTag -val searchTagMapper: (Long, Long, String?, String, Int) -> SearchTag = +val searchTagMapper: (Long, Long, String?, String, Long) -> SearchTag = { id, mangaId, namespace, name, type -> SearchTag( id = id, mangaId = mangaId, namespace = namespace, name = name, - type = type, + type = type.toInt(), ) } diff --git a/data/src/main/java/tachiyomi/data/manga/SearchTitle.kt b/data/src/main/java/tachiyomi/data/manga/SearchTitle.kt index ba6cb9096..d7a881583 100644 --- a/data/src/main/java/tachiyomi/data/manga/SearchTitle.kt +++ b/data/src/main/java/tachiyomi/data/manga/SearchTitle.kt @@ -2,12 +2,12 @@ package tachiyomi.data.manga import exh.metadata.sql.models.SearchTitle -val searchTitleMapper: (Long, Long, String, Int) -> SearchTitle = +val searchTitleMapper: (Long, Long, String, Long) -> SearchTitle = { id, mangaId, title, type -> SearchTitle( id = id, mangaId = mangaId, title = title, - type = type, + type = type.toInt(), ) } diff --git a/data/src/main/java/tachiyomi/data/track/TrackMapper.kt b/data/src/main/java/tachiyomi/data/track/TrackMapper.kt index d08a8b9a5..e8978e25b 100644 --- a/data/src/main/java/tachiyomi/data/track/TrackMapper.kt +++ b/data/src/main/java/tachiyomi/data/track/TrackMapper.kt @@ -2,7 +2,7 @@ package tachiyomi.data.track import tachiyomi.domain.track.model.Track -val trackMapper: (Long, Long, Long, Long, Long?, String, Double, Long, Long, Float, String, Long, Long) -> Track = +val trackMapper: (Long, Long, Long, Long, Long?, String, Double, Long, Long, Double, String, Long, Long) -> Track = { id, mangaId, syncId, remoteId, libraryId, title, lastChapterRead, totalChapters, status, score, remoteUrl, startDate, finishDate -> Track( id = id, diff --git a/data/src/main/sqldelight/tachiyomi/data/chapters.sq b/data/src/main/sqldelight/tachiyomi/data/chapters.sq index 24825b494..5b0038174 100644 --- a/data/src/main/sqldelight/tachiyomi/data/chapters.sq +++ b/data/src/main/sqldelight/tachiyomi/data/chapters.sq @@ -1,5 +1,4 @@ import kotlin.Boolean; -import kotlin.Float; CREATE TABLE chapters( _id INTEGER NOT NULL PRIMARY KEY, @@ -10,7 +9,7 @@ CREATE TABLE chapters( read INTEGER AS Boolean NOT NULL, bookmark INTEGER AS Boolean NOT NULL, last_page_read INTEGER NOT NULL, - chapter_number REAL AS Float NOT NULL, + chapter_number REAL NOT NULL, source_order INTEGER NOT NULL, date_fetch INTEGER NOT NULL, date_upload INTEGER NOT NULL, diff --git a/data/src/main/sqldelight/tachiyomi/data/manga_sync.sq b/data/src/main/sqldelight/tachiyomi/data/manga_sync.sq index 2a466de39..698a8d660 100644 --- a/data/src/main/sqldelight/tachiyomi/data/manga_sync.sq +++ b/data/src/main/sqldelight/tachiyomi/data/manga_sync.sq @@ -1,5 +1,3 @@ -import kotlin.Float; - CREATE TABLE manga_sync( _id INTEGER NOT NULL PRIMARY KEY, manga_id INTEGER NOT NULL, @@ -10,7 +8,7 @@ CREATE TABLE manga_sync( last_chapter_read REAL NOT NULL, total_chapters INTEGER NOT NULL, status INTEGER NOT NULL, - score REAL AS Float NOT NULL, + score REAL NOT NULL, remote_url TEXT NOT NULL, start_date INTEGER NOT NULL, finish_date INTEGER NOT NULL, diff --git a/data/src/main/sqldelight/tachiyomi/data/search_metadata.sq b/data/src/main/sqldelight/tachiyomi/data/search_metadata.sq index 9e06554eb..344bc2780 100644 --- a/data/src/main/sqldelight/tachiyomi/data/search_metadata.sq +++ b/data/src/main/sqldelight/tachiyomi/data/search_metadata.sq @@ -5,7 +5,7 @@ CREATE TABLE search_metadata ( uploader TEXT, extra TEXT NOT NULL, indexed_extra TEXT, - extra_version INTEGER AS Int NOT NULL, + extra_version INTEGER NOT NULL, FOREIGN KEY(manga_id) REFERENCES mangas (_id) ON DELETE CASCADE ); diff --git a/data/src/main/sqldelight/tachiyomi/data/search_tags.sq b/data/src/main/sqldelight/tachiyomi/data/search_tags.sq index c9360de11..87b1554f8 100644 --- a/data/src/main/sqldelight/tachiyomi/data/search_tags.sq +++ b/data/src/main/sqldelight/tachiyomi/data/search_tags.sq @@ -5,7 +5,7 @@ CREATE TABLE search_tags ( manga_id INTEGER NOT NULL, namespace TEXT, name TEXT NOT NULL, - type INTEGER AS Int NOT NULL, + type INTEGER NOT NULL, FOREIGN KEY(manga_id) REFERENCES mangas (_id) ON DELETE CASCADE ); diff --git a/data/src/main/sqldelight/tachiyomi/data/search_titles.sq b/data/src/main/sqldelight/tachiyomi/data/search_titles.sq index 669bf8b23..c80f518f0 100644 --- a/data/src/main/sqldelight/tachiyomi/data/search_titles.sq +++ b/data/src/main/sqldelight/tachiyomi/data/search_titles.sq @@ -4,7 +4,7 @@ CREATE TABLE search_titles ( _id INTEGER NOT NULL PRIMARY KEY, manga_id INTEGER NOT NULL, title TEXT NOT NULL, - type INTEGER AS Int NOT NULL, + type INTEGER NOT NULL, FOREIGN KEY(manga_id) REFERENCES mangas (_id) ON DELETE CASCADE ); diff --git a/domain/src/main/java/tachiyomi/domain/chapter/model/Chapter.kt b/domain/src/main/java/tachiyomi/domain/chapter/model/Chapter.kt index 9adee3f1b..0029d67ea 100644 --- a/domain/src/main/java/tachiyomi/domain/chapter/model/Chapter.kt +++ b/domain/src/main/java/tachiyomi/domain/chapter/model/Chapter.kt @@ -11,7 +11,7 @@ data class Chapter( val url: String, val name: String, val dateUpload: Long, - val chapterNumber: Float, + val chapterNumber: Double, val scanlator: String?, val lastModifiedAt: Long, ) { @@ -30,7 +30,7 @@ data class Chapter( url = "", name = "", dateUpload = -1, - chapterNumber = -1f, + chapterNumber = -1.0, scanlator = null, lastModifiedAt = 0, ) diff --git a/domain/src/main/java/tachiyomi/domain/chapter/model/ChapterUpdate.kt b/domain/src/main/java/tachiyomi/domain/chapter/model/ChapterUpdate.kt index 7cfe4ab23..58cc88821 100644 --- a/domain/src/main/java/tachiyomi/domain/chapter/model/ChapterUpdate.kt +++ b/domain/src/main/java/tachiyomi/domain/chapter/model/ChapterUpdate.kt @@ -11,7 +11,7 @@ data class ChapterUpdate( val url: String? = null, val name: String? = null, val dateUpload: Long? = null, - val chapterNumber: Float? = null, + val chapterNumber: Double? = null, val scanlator: String? = null, ) diff --git a/domain/src/main/java/tachiyomi/domain/chapter/service/ChapterRecognition.kt b/domain/src/main/java/tachiyomi/domain/chapter/service/ChapterRecognition.kt index 5c009f6d2..bd8e2c793 100644 --- a/domain/src/main/java/tachiyomi/domain/chapter/service/ChapterRecognition.kt +++ b/domain/src/main/java/tachiyomi/domain/chapter/service/ChapterRecognition.kt @@ -30,9 +30,9 @@ object ChapterRecognition { */ private val unwantedWhiteSpace = Regex("""\s(?=extra|special|omake)""") - fun parseChapterNumber(mangaTitle: String, chapterName: String, chapterNumber: Float? = null): Float { + fun parseChapterNumber(mangaTitle: String, chapterName: String, chapterNumber: Double? = null): Double { // If chapter number is known return. - if (chapterNumber != null && (chapterNumber == -2f || chapterNumber > -1f)) { + if (chapterNumber != null && (chapterNumber == -2.0 || chapterNumber > -1.0)) { return chapterNumber } @@ -57,7 +57,7 @@ object ChapterRecognition { // Take the first number encountered. number.find(name)?.let { return getChapterNumberFromMatch(it) } - return chapterNumber ?: -1f + return chapterNumber ?: -1.0 } /** @@ -65,9 +65,9 @@ object ChapterRecognition { * @param match result of regex * @return chapter number if found else null */ - private fun getChapterNumberFromMatch(match: MatchResult): Float { + private fun getChapterNumberFromMatch(match: MatchResult): Double { return match.let { - val initial = it.groups[1]?.value?.toFloat()!! + val initial = it.groups[1]?.value?.toDouble()!! val subChapterDecimal = it.groups[2]?.value val subChapterAlpha = it.groups[3]?.value val addition = checkForDecimal(subChapterDecimal, subChapterAlpha) diff --git a/domain/src/main/java/tachiyomi/domain/chapter/service/MissingChapters.kt b/domain/src/main/java/tachiyomi/domain/chapter/service/MissingChapters.kt index b5b728ff6..55cce541b 100644 --- a/domain/src/main/java/tachiyomi/domain/chapter/service/MissingChapters.kt +++ b/domain/src/main/java/tachiyomi/domain/chapter/service/MissingChapters.kt @@ -3,16 +3,16 @@ package tachiyomi.domain.chapter.service import tachiyomi.domain.chapter.model.Chapter import kotlin.math.floor -fun List.missingChaptersCount(): Int { +fun List.missingChaptersCount(): Int { if (this.isEmpty()) { return 0 } val chapters = this // Ignore unknown chapter numbers - .filterNot { it == -1f } + .filterNot { it == -1.0 } // Convert to integers, as we cannot check if 16.5 is missing - .map(Float::toInt) + .map(Double::toInt) // Only keep unique chapters so that -1 or 16 are not counted multiple times .distinct() .sorted() @@ -43,7 +43,7 @@ fun calculateChapterGap(higherChapter: Chapter?, lowerChapter: Chapter?): Int { return calculateChapterGap(higherChapter.chapterNumber, lowerChapter.chapterNumber) } -fun calculateChapterGap(higherChapterNumber: Float, lowerChapterNumber: Float): Int { - if (higherChapterNumber < 0f || lowerChapterNumber < 0f) return 0 +fun calculateChapterGap(higherChapterNumber: Double, lowerChapterNumber: Double): Int { + if (higherChapterNumber < 0.0 || lowerChapterNumber < 0.0) return 0 return floor(higherChapterNumber).toInt() - floor(lowerChapterNumber).toInt() - 1 } diff --git a/domain/src/main/java/tachiyomi/domain/history/model/HistoryWithRelations.kt b/domain/src/main/java/tachiyomi/domain/history/model/HistoryWithRelations.kt index 09d3b4bba..4013f94f7 100644 --- a/domain/src/main/java/tachiyomi/domain/history/model/HistoryWithRelations.kt +++ b/domain/src/main/java/tachiyomi/domain/history/model/HistoryWithRelations.kt @@ -12,7 +12,7 @@ data class HistoryWithRelations( // SY --> val ogTitle: String, // SY <-- - val chapterNumber: Float, + val chapterNumber: Double, val readAt: Date?, val readDuration: Long, val coverData: MangaCover, diff --git a/domain/src/main/java/tachiyomi/domain/track/model/Track.kt b/domain/src/main/java/tachiyomi/domain/track/model/Track.kt index e3af5b7f7..91ac2c833 100644 --- a/domain/src/main/java/tachiyomi/domain/track/model/Track.kt +++ b/domain/src/main/java/tachiyomi/domain/track/model/Track.kt @@ -10,7 +10,7 @@ data class Track( val lastChapterRead: Double, val totalChapters: Long, val status: Long, - val score: Float, + val score: Double, val remoteUrl: String, val startDate: Long, val finishDate: Long, diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 13d13260c..fd1fb3ca1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -83,7 +83,6 @@ leakcanary-plumber = { module = "com.squareup.leakcanary:plumber-android", versi sqldelight-android-driver = { module = "app.cash.sqldelight:android-driver", version.ref = "sqldelight" } sqldelight-coroutines = { module = "app.cash.sqldelight:coroutines-extensions-jvm", version.ref = "sqldelight" } sqldelight-android-paging = { module = "app.cash.sqldelight:androidx-paging3-extensions", version.ref = "sqldelight" } -sqldelight-primitive-adapters = { module = "app.cash.sqldelight:primitive-adapters", version.ref = "sqldelight" } sqldelight-dialects-sql = { module = "app.cash.sqldelight:sqlite-3-38-dialect", version.ref = "sqldelight" } sqldelight-gradle = { module = "app.cash.sqldelight:gradle-plugin", version.ref = "sqldelight" } @@ -104,7 +103,7 @@ js-engine = ["quickjs-android"] sqlite = ["sqlite-framework", "sqlite-ktx", "sqlite-android"] coil = ["coil-core", "coil-gif", "coil-compose"] shizuku = ["shizuku-api", "shizuku-provider"] -sqldelight = ["sqldelight-android-driver", "sqldelight-coroutines", "sqldelight-android-paging", "sqldelight-primitive-adapters"] +sqldelight = ["sqldelight-android-driver", "sqldelight-coroutines", "sqldelight-android-paging"] voyager = ["voyager-navigator", "voyager-tab-navigator", "voyager-transitions"] richtext = ["richtext-commonmark", "richtext-m3"] test = ["junit", "kotest-assertions", "mockk"] \ No newline at end of file diff --git a/source-local/src/androidMain/kotlin/tachiyomi/source/local/LocalSource.kt b/source-local/src/androidMain/kotlin/tachiyomi/source/local/LocalSource.kt index 9f28346c5..e1d9fbf8e 100755 --- a/source-local/src/androidMain/kotlin/tachiyomi/source/local/LocalSource.kt +++ b/source-local/src/androidMain/kotlin/tachiyomi/source/local/LocalSource.kt @@ -340,7 +340,9 @@ actual class LocalSource( chapterFile.nameWithoutExtension } date_upload = chapterFile.lastModified() - chapter_number = ChapterRecognition.parseChapterNumber(manga.title, this.name, this.chapter_number) + chapter_number = ChapterRecognition + .parseChapterNumber(manga.title, this.name, this.chapter_number.toDouble()) + .toFloat() val format = Format.valueOf(chapterFile) if (format is Format.Epub) {