diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 2c1847f7e..a298599b7 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -8,7 +8,6 @@ plugins { kotlin("plugin.parcelize") kotlin("plugin.serialization") id("com.github.zellius.shortcut-helper") - id("com.squareup.sqldelight") id("com.github.ben-manes.versions") } @@ -134,19 +133,13 @@ android { composeOptions { kotlinCompilerExtensionVersion = compose.versions.compiler.get() } - - sqldelight { - database("Database") { - packageName = "eu.kanade.tachiyomi" - dialect = "sqlite:3.24" - } - } } dependencies { implementation(project(":i18n")) implementation(project(":core")) implementation(project(":source-api")) + implementation(project(":data")) // Compose implementation(platform(compose.bom)) @@ -169,9 +162,6 @@ dependencies { implementation(androidx.paging.compose) implementation(libs.bundles.sqlite) - implementation(libs.sqldelight.android.driver) - implementation(libs.sqldelight.coroutines) - implementation(libs.sqldelight.android.paging) implementation(kotlinx.reflect) diff --git a/app/src/main/java/eu/kanade/data/category/CategoryRepositoryImpl.kt b/app/src/main/java/eu/kanade/data/category/CategoryRepositoryImpl.kt index 5cc7f1ad9..522d983d7 100644 --- a/app/src/main/java/eu/kanade/data/category/CategoryRepositoryImpl.kt +++ b/app/src/main/java/eu/kanade/data/category/CategoryRepositoryImpl.kt @@ -1,11 +1,11 @@ package eu.kanade.data.category -import eu.kanade.data.DatabaseHandler import eu.kanade.domain.category.model.Category import eu.kanade.domain.category.model.CategoryUpdate import eu.kanade.domain.category.repository.CategoryRepository -import eu.kanade.tachiyomi.Database import kotlinx.coroutines.flow.Flow +import tachiyomi.data.Database +import tachiyomi.data.DatabaseHandler class CategoryRepositoryImpl( private val handler: DatabaseHandler, diff --git a/app/src/main/java/eu/kanade/data/chapter/ChapterRepositoryImpl.kt b/app/src/main/java/eu/kanade/data/chapter/ChapterRepositoryImpl.kt index 779ff0777..d96e053d3 100644 --- a/app/src/main/java/eu/kanade/data/chapter/ChapterRepositoryImpl.kt +++ b/app/src/main/java/eu/kanade/data/chapter/ChapterRepositoryImpl.kt @@ -1,6 +1,5 @@ package eu.kanade.data.chapter -import eu.kanade.data.DatabaseHandler import eu.kanade.domain.chapter.model.Chapter import eu.kanade.domain.chapter.model.ChapterUpdate import eu.kanade.domain.chapter.repository.ChapterRepository @@ -8,6 +7,7 @@ import eu.kanade.tachiyomi.util.system.logcat import eu.kanade.tachiyomi.util.system.toLong import kotlinx.coroutines.flow.Flow import logcat.LogPriority +import tachiyomi.data.DatabaseHandler class ChapterRepositoryImpl( private val handler: DatabaseHandler, diff --git a/app/src/main/java/eu/kanade/data/history/HistoryRepositoryImpl.kt b/app/src/main/java/eu/kanade/data/history/HistoryRepositoryImpl.kt index a779c0d74..5b3f0b929 100644 --- a/app/src/main/java/eu/kanade/data/history/HistoryRepositoryImpl.kt +++ b/app/src/main/java/eu/kanade/data/history/HistoryRepositoryImpl.kt @@ -1,6 +1,5 @@ package eu.kanade.data.history -import eu.kanade.data.DatabaseHandler import eu.kanade.domain.history.model.History import eu.kanade.domain.history.model.HistoryUpdate import eu.kanade.domain.history.model.HistoryWithRelations @@ -8,6 +7,7 @@ import eu.kanade.domain.history.repository.HistoryRepository import eu.kanade.tachiyomi.util.system.logcat import kotlinx.coroutines.flow.Flow import logcat.LogPriority +import tachiyomi.data.DatabaseHandler class HistoryRepositoryImpl( private val handler: DatabaseHandler, diff --git a/app/src/main/java/eu/kanade/data/manga/FavoritesEntryRepositoryImpl.kt b/app/src/main/java/eu/kanade/data/manga/FavoritesEntryRepositoryImpl.kt index cd5ed298a..771e0b35d 100644 --- a/app/src/main/java/eu/kanade/data/manga/FavoritesEntryRepositoryImpl.kt +++ b/app/src/main/java/eu/kanade/data/manga/FavoritesEntryRepositoryImpl.kt @@ -1,9 +1,9 @@ package eu.kanade.data.manga -import eu.kanade.data.DatabaseHandler import eu.kanade.data.exh.favoriteEntryMapper import eu.kanade.domain.manga.repository.FavoritesEntryRepository import exh.favorites.sql.models.FavoriteEntry +import tachiyomi.data.DatabaseHandler class FavoritesEntryRepositoryImpl( private val handler: DatabaseHandler, diff --git a/app/src/main/java/eu/kanade/data/manga/MangaMapper.kt b/app/src/main/java/eu/kanade/data/manga/MangaMapper.kt index b155018f0..aea2df677 100644 --- a/app/src/main/java/eu/kanade/data/manga/MangaMapper.kt +++ b/app/src/main/java/eu/kanade/data/manga/MangaMapper.kt @@ -3,6 +3,7 @@ package eu.kanade.data.manga import eu.kanade.domain.library.model.LibraryManga import eu.kanade.domain.manga.model.Manga import eu.kanade.tachiyomi.source.model.UpdateStrategy +import tachiyomi.view.LibraryView val mangaMapper: (Long, Long, String, String?, String?, String?, List?, String, Long, String?, Boolean, Long?, Long?, Boolean, Long, Long, Long, Long, List?, UpdateStrategy) -> Manga = { id, source, url, artist, author, description, genre, title, status, thumbnailUrl, favorite, lastUpdate, _, initialized, viewerFlags, chapterFlags, coverLastModified, dateAdded, filteredScanlators, updateStrategy -> @@ -69,3 +70,36 @@ val libraryManga: (Long, Long, String, String?, String?, String?, List?, lastRead = lastRead, ) } + +val libraryViewMapper: (LibraryView) -> LibraryManga = { + LibraryManga( + Manga( + id = it._id, + source = it.source, + favorite = it.favorite, + lastUpdate = it.last_update ?: 0, + dateAdded = it.date_added, + viewerFlags = it.viewer, + chapterFlags = it.chapter_flags, + coverLastModified = it.cover_last_modified, + url = it.url, + ogTitle = it.title, + ogArtist = it.artist, + ogAuthor = it.author, + ogDescription = it.description, + ogGenre = it.genre, + ogStatus = it.status, + thumbnailUrl = it.thumbnail_url, + updateStrategy = it.update_strategy, + initialized = it.initialized, + filteredScanlators = it.filtered_scanlators, + ), + it.category, + it.totalCount, + it.readCount, + it.bookmarkCount, + it.latestUpload, + it.chapterFetchedAt, + it.lastRead, + ) +} diff --git a/app/src/main/java/eu/kanade/data/manga/MangaMergeRepositoryImpl.kt b/app/src/main/java/eu/kanade/data/manga/MangaMergeRepositoryImpl.kt index 74539dfc6..05ce7be1a 100644 --- a/app/src/main/java/eu/kanade/data/manga/MangaMergeRepositoryImpl.kt +++ b/app/src/main/java/eu/kanade/data/manga/MangaMergeRepositoryImpl.kt @@ -1,6 +1,5 @@ package eu.kanade.data.manga -import eu.kanade.data.DatabaseHandler import eu.kanade.data.exh.mergedMangaReferenceMapper import eu.kanade.domain.manga.model.Manga import eu.kanade.domain.manga.model.MergeMangaSettingsUpdate @@ -10,6 +9,7 @@ import eu.kanade.tachiyomi.util.system.toLong import exh.merged.sql.models.MergedMangaReference import kotlinx.coroutines.flow.Flow import logcat.LogPriority +import tachiyomi.data.DatabaseHandler class MangaMergeRepositoryImpl( private val handler: DatabaseHandler, diff --git a/app/src/main/java/eu/kanade/data/manga/MangaMetadataRepositoryImpl.kt b/app/src/main/java/eu/kanade/data/manga/MangaMetadataRepositoryImpl.kt index b26596275..d3f41540b 100644 --- a/app/src/main/java/eu/kanade/data/manga/MangaMetadataRepositoryImpl.kt +++ b/app/src/main/java/eu/kanade/data/manga/MangaMetadataRepositoryImpl.kt @@ -1,6 +1,5 @@ package eu.kanade.data.manga -import eu.kanade.data.DatabaseHandler import eu.kanade.data.exh.searchMetadataMapper import eu.kanade.data.exh.searchTagMapper import eu.kanade.data.exh.searchTitleMapper @@ -13,6 +12,7 @@ import exh.metadata.sql.models.SearchTitle import exh.source.EH_SOURCE_ID import exh.source.EXH_SOURCE_ID import kotlinx.coroutines.flow.Flow +import tachiyomi.data.DatabaseHandler class MangaMetadataRepositoryImpl( private val handler: DatabaseHandler, diff --git a/app/src/main/java/eu/kanade/data/manga/MangaRepositoryImpl.kt b/app/src/main/java/eu/kanade/data/manga/MangaRepositoryImpl.kt index 614ee30a4..9fff062bf 100644 --- a/app/src/main/java/eu/kanade/data/manga/MangaRepositoryImpl.kt +++ b/app/src/main/java/eu/kanade/data/manga/MangaRepositoryImpl.kt @@ -1,10 +1,5 @@ package eu.kanade.data.manga -import eu.kanade.data.AndroidDatabaseHandler -import eu.kanade.data.DatabaseHandler -import eu.kanade.data.listOfStringsAdapter -import eu.kanade.data.listOfStringsAndAdapter -import eu.kanade.data.updateStrategyAdapter import eu.kanade.domain.library.model.LibraryManga import eu.kanade.domain.manga.model.Manga import eu.kanade.domain.manga.model.MangaUpdate @@ -14,6 +9,11 @@ import eu.kanade.tachiyomi.util.system.toLong import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map import logcat.LogPriority +import tachiyomi.data.AndroidDatabaseHandler +import tachiyomi.data.DatabaseHandler +import tachiyomi.data.listOfStringsAdapter +import tachiyomi.data.listOfStringsAndAdapter +import tachiyomi.data.updateStrategyAdapter class MangaRepositoryImpl( private val handler: DatabaseHandler, @@ -40,7 +40,7 @@ class MangaRepositoryImpl( } override suspend fun getLibraryManga(): List { - return handler.awaitList { (handler as AndroidDatabaseHandler).getLibraryQuery() } + return handler.awaitList { (handler as AndroidDatabaseHandler).getLibraryQuery() }.map(libraryViewMapper) // return handler.awaitList { libraryViewQueries.library(libraryManga) } } diff --git a/app/src/main/java/eu/kanade/data/source/FeedSavedSearchRepositoryImpl.kt b/app/src/main/java/eu/kanade/data/source/FeedSavedSearchRepositoryImpl.kt index d53d4d3b0..07f563803 100644 --- a/app/src/main/java/eu/kanade/data/source/FeedSavedSearchRepositoryImpl.kt +++ b/app/src/main/java/eu/kanade/data/source/FeedSavedSearchRepositoryImpl.kt @@ -1,12 +1,12 @@ package eu.kanade.data.source -import eu.kanade.data.DatabaseHandler import eu.kanade.data.exh.feedSavedSearchMapper import eu.kanade.data.exh.savedSearchMapper import eu.kanade.domain.source.repository.FeedSavedSearchRepository import exh.savedsearches.models.FeedSavedSearch import exh.savedsearches.models.SavedSearch import kotlinx.coroutines.flow.Flow +import tachiyomi.data.DatabaseHandler class FeedSavedSearchRepositoryImpl( private val handler: DatabaseHandler, diff --git a/app/src/main/java/eu/kanade/data/source/SavedSearchRepositoryImpl.kt b/app/src/main/java/eu/kanade/data/source/SavedSearchRepositoryImpl.kt index 92cadc5c4..09297f6ff 100644 --- a/app/src/main/java/eu/kanade/data/source/SavedSearchRepositoryImpl.kt +++ b/app/src/main/java/eu/kanade/data/source/SavedSearchRepositoryImpl.kt @@ -1,10 +1,10 @@ package eu.kanade.data.source -import eu.kanade.data.DatabaseHandler import eu.kanade.data.exh.savedSearchMapper import eu.kanade.domain.source.repository.SavedSearchRepository import exh.savedsearches.models.SavedSearch import kotlinx.coroutines.flow.Flow +import tachiyomi.data.DatabaseHandler class SavedSearchRepositoryImpl( private val handler: DatabaseHandler, diff --git a/app/src/main/java/eu/kanade/data/source/SourceDataRepositoryImpl.kt b/app/src/main/java/eu/kanade/data/source/SourceDataRepositoryImpl.kt index 44e68a877..6bd19a767 100644 --- a/app/src/main/java/eu/kanade/data/source/SourceDataRepositoryImpl.kt +++ b/app/src/main/java/eu/kanade/data/source/SourceDataRepositoryImpl.kt @@ -1,9 +1,9 @@ package eu.kanade.data.source -import eu.kanade.data.DatabaseHandler import eu.kanade.domain.source.model.SourceData import eu.kanade.domain.source.repository.SourceDataRepository import kotlinx.coroutines.flow.Flow +import tachiyomi.data.DatabaseHandler class SourceDataRepositoryImpl( private val handler: DatabaseHandler, diff --git a/app/src/main/java/eu/kanade/data/source/SourceRepositoryImpl.kt b/app/src/main/java/eu/kanade/data/source/SourceRepositoryImpl.kt index 8bafed629..8c6c4522a 100644 --- a/app/src/main/java/eu/kanade/data/source/SourceRepositoryImpl.kt +++ b/app/src/main/java/eu/kanade/data/source/SourceRepositoryImpl.kt @@ -1,6 +1,5 @@ package eu.kanade.data.source -import eu.kanade.data.DatabaseHandler import eu.kanade.domain.source.model.Source import eu.kanade.domain.source.model.SourcePagingSourceType import eu.kanade.domain.source.model.SourceWithCount @@ -13,6 +12,7 @@ import eu.kanade.tachiyomi.source.online.all.EHentai import exh.source.MERGED_SOURCE_ID import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map +import tachiyomi.data.DatabaseHandler class SourceRepositoryImpl( private val sourceManager: SourceManager, diff --git a/app/src/main/java/eu/kanade/data/track/TrackRepositoryImpl.kt b/app/src/main/java/eu/kanade/data/track/TrackRepositoryImpl.kt index 9e1f83d65..fc3f74048 100644 --- a/app/src/main/java/eu/kanade/data/track/TrackRepositoryImpl.kt +++ b/app/src/main/java/eu/kanade/data/track/TrackRepositoryImpl.kt @@ -1,9 +1,9 @@ package eu.kanade.data.track -import eu.kanade.data.DatabaseHandler import eu.kanade.domain.track.model.Track import eu.kanade.domain.track.repository.TrackRepository import kotlinx.coroutines.flow.Flow +import tachiyomi.data.DatabaseHandler class TrackRepositoryImpl( private val handler: DatabaseHandler, diff --git a/app/src/main/java/eu/kanade/data/updates/UpdatesMapper.kt b/app/src/main/java/eu/kanade/data/updates/UpdatesMapper.kt index dce6a3024..08deabd6c 100644 --- a/app/src/main/java/eu/kanade/data/updates/UpdatesMapper.kt +++ b/app/src/main/java/eu/kanade/data/updates/UpdatesMapper.kt @@ -2,6 +2,7 @@ package eu.kanade.data.updates import eu.kanade.domain.manga.model.MangaCover import eu.kanade.domain.updates.model.UpdatesWithRelations +import tachiyomi.view.UpdatesView val updateWithRelationMapper: (Long, String, Long, String, String?, Boolean, Boolean, Long, Long, Boolean, String?, Long, Long, Long) -> UpdatesWithRelations = { mangaId, mangaTitle, chapterId, chapterName, scanlator, read, bookmark, lastPageRead, sourceId, favorite, thumbnailUrl, coverLastModified, _, dateFetch -> @@ -27,3 +28,25 @@ val updateWithRelationMapper: (Long, String, Long, String, String?, Boolean, Boo ), ) } + +val updatesViewMapper: (UpdatesView) -> UpdatesWithRelations = { + UpdatesWithRelations( + mangaId = it.mangaId, + ogMangaTitle = it.mangaTitle, + chapterId = it.chapterId, + chapterName = it.chapterName, + scanlator = it.scanlator, + read = it.read, + bookmark = it.bookmark, + lastPageRead = it.last_page_read, + sourceId = it.source, + dateFetch = it.datefetch, + coverData = MangaCover( + mangaId = it.mangaId, + sourceId = it.source, + isMangaFavorite = it.favorite, + url = it.thumbnailUrl, + lastModified = it.coverLastModified, + ), + ) +} diff --git a/app/src/main/java/eu/kanade/data/updates/UpdatesRepositoryImpl.kt b/app/src/main/java/eu/kanade/data/updates/UpdatesRepositoryImpl.kt index e06cc9e3a..0457f62c3 100644 --- a/app/src/main/java/eu/kanade/data/updates/UpdatesRepositoryImpl.kt +++ b/app/src/main/java/eu/kanade/data/updates/UpdatesRepositoryImpl.kt @@ -1,11 +1,11 @@ package eu.kanade.data.updates -import eu.kanade.data.AndroidDatabaseHandler -import eu.kanade.data.DatabaseHandler import eu.kanade.domain.updates.model.UpdatesWithRelations import eu.kanade.domain.updates.repository.UpdatesRepository import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map +import tachiyomi.data.AndroidDatabaseHandler +import tachiyomi.data.DatabaseHandler class UpdatesRepositoryImpl( val databaseHandler: DatabaseHandler, @@ -16,6 +16,7 @@ class UpdatesRepositoryImpl( updatesViewQueries.updates(after, updateWithRelationMapper) }.map { databaseHandler.awaitList { (databaseHandler as AndroidDatabaseHandler).getUpdatesQuery(after) } + .map(updatesViewMapper) } } } diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/ClearDatabaseScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/ClearDatabaseScreen.kt index be3923b5e..b4ca9c2a8 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/ClearDatabaseScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/ClearDatabaseScreen.kt @@ -50,7 +50,6 @@ import eu.kanade.presentation.components.FastScrollLazyColumn import eu.kanade.presentation.components.LoadingScreen import eu.kanade.presentation.components.Scaffold import eu.kanade.presentation.util.selectedBackground -import eu.kanade.tachiyomi.Database import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.lang.launchUI @@ -58,6 +57,7 @@ import eu.kanade.tachiyomi.util.lang.withNonCancellableContext import eu.kanade.tachiyomi.util.system.toast import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.update +import tachiyomi.data.Database import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt index ab0e83362..2ecadf14d 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt @@ -74,10 +74,6 @@ import eu.kanade.tachiyomi.util.CrashLogUtil import eu.kanade.tachiyomi.util.lang.launchNonCancellable import eu.kanade.tachiyomi.util.lang.withUIContext import eu.kanade.tachiyomi.util.storage.DiskUtil -import eu.kanade.tachiyomi.util.system.DeviceUtil -import eu.kanade.tachiyomi.util.system.isPackageInstalled -import eu.kanade.tachiyomi.util.system.isPreviewBuildType -import eu.kanade.tachiyomi.util.system.isReleaseBuildType import eu.kanade.tachiyomi.util.system.isShizukuInstalled import eu.kanade.tachiyomi.util.system.logcat import eu.kanade.tachiyomi.util.system.powerManager diff --git a/app/src/main/java/eu/kanade/tachiyomi/App.kt b/app/src/main/java/eu/kanade/tachiyomi/App.kt index 7bd489bca..d21f0a030 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/App.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/App.kt @@ -35,7 +35,6 @@ import com.elvishew.xlog.printer.file.clean.FileLastModifiedCleanStrategy import com.elvishew.xlog.printer.file.naming.DateFileNameGenerator import com.google.firebase.analytics.ktx.analytics import com.google.firebase.ktx.Firebase -import eu.kanade.data.DatabaseHandler import eu.kanade.domain.DomainModule import eu.kanade.domain.SYDomainModule import eu.kanade.domain.base.BasePreferences @@ -74,6 +73,7 @@ import kotlinx.coroutines.flow.onEach import logcat.LogPriority import logcat.LogcatLogger import org.conscrypt.Conscrypt +import tachiyomi.data.DatabaseHandler import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy diff --git a/app/src/main/java/eu/kanade/tachiyomi/AppModule.kt b/app/src/main/java/eu/kanade/tachiyomi/AppModule.kt index 2c607da53..09612ba2e 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/AppModule.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/AppModule.kt @@ -7,16 +7,6 @@ import androidx.sqlite.db.SupportSQLiteDatabase import androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory import com.squareup.sqldelight.android.AndroidSqliteDriver import com.squareup.sqldelight.db.SqlDriver -import data.Categories -import data.History -import data.Mangas -import eu.kanade.data.AndroidDatabaseHandler -import eu.kanade.data.DatabaseHandler -import eu.kanade.data.dateAdapter -import eu.kanade.data.listOfLongsAdapter -import eu.kanade.data.listOfStringsAdapter -import eu.kanade.data.listOfStringsAndAdapter -import eu.kanade.data.updateStrategyAdapter import eu.kanade.domain.UnsortedPreferences import eu.kanade.domain.backup.service.BackupPreferences import eu.kanade.domain.base.BasePreferences @@ -55,6 +45,17 @@ import nl.adaptivity.xmlutil.XmlDeclMode import nl.adaptivity.xmlutil.core.XmlVersion import nl.adaptivity.xmlutil.serialization.UnknownChildHandler import nl.adaptivity.xmlutil.serialization.XML +import tachiyomi.data.AndroidDatabaseHandler +import tachiyomi.data.Categories +import tachiyomi.data.Database +import tachiyomi.data.DatabaseHandler +import tachiyomi.data.History +import tachiyomi.data.Mangas +import tachiyomi.data.dateAdapter +import tachiyomi.data.listOfLongsAdapter +import tachiyomi.data.listOfStringsAdapter +import tachiyomi.data.listOfStringsAndAdapter +import tachiyomi.data.updateStrategyAdapter import uy.kohesive.injekt.api.InjektModule import uy.kohesive.injekt.api.InjektRegistrar import uy.kohesive.injekt.api.addSingleton 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 d46d1f743..08454e881 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 @@ -4,13 +4,8 @@ import android.Manifest import android.content.Context import android.net.Uri import com.hippo.unifile.UniFile -import data.Manga_sync -import data.Mangas -import eu.kanade.data.DatabaseHandler import eu.kanade.data.exh.mergedMangaReferenceMapper -import eu.kanade.data.listOfStringsAndAdapter import eu.kanade.data.manga.mangaMapper -import eu.kanade.data.updateStrategyAdapter import eu.kanade.domain.backup.service.BackupPreferences import eu.kanade.domain.category.interactor.GetCategories import eu.kanade.domain.category.model.Category @@ -65,6 +60,11 @@ import logcat.LogPriority import okio.buffer import okio.gzip import okio.sink +import tachiyomi.data.DatabaseHandler +import tachiyomi.data.Manga_sync +import tachiyomi.data.Mangas +import tachiyomi.data.listOfStringsAndAdapter +import tachiyomi.data.updateStrategyAdapter import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import java.io.FileOutputStream 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 e3521c178..6873af85c 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 @@ -1,6 +1,5 @@ package eu.kanade.tachiyomi.data.backup.models -import eu.kanade.data.listOfStringsAndAdapter import eu.kanade.domain.manga.model.Manga import eu.kanade.tachiyomi.data.database.models.ChapterImpl import eu.kanade.tachiyomi.data.database.models.MangaImpl @@ -10,6 +9,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 @Suppress("DEPRECATION") @Serializable diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/models/Manga.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/models/Manga.kt index 3fd4ccced..85141ce44 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/models/Manga.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/models/Manga.kt @@ -1,10 +1,10 @@ package eu.kanade.tachiyomi.data.database.models -import eu.kanade.data.listOfStringsAndAdapter import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.ui.reader.setting.OrientationType import eu.kanade.tachiyomi.ui.reader.setting.ReadingModeType import exh.util.nullIfEmpty +import tachiyomi.data.listOfStringsAndAdapter import eu.kanade.domain.manga.model.Manga as DomainManga interface Manga : SManga { diff --git a/app/src/main/java/eu/kanade/tachiyomi/glance/UpdatesGridGlanceWidget.kt b/app/src/main/java/eu/kanade/tachiyomi/glance/UpdatesGridGlanceWidget.kt index 095834151..5c85e87be 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/glance/UpdatesGridGlanceWidget.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/glance/UpdatesGridGlanceWidget.kt @@ -43,7 +43,6 @@ import coil.request.ImageRequest import coil.size.Precision import coil.size.Scale import coil.transform.RoundedCornersTransformation -import eu.kanade.data.DatabaseHandler import eu.kanade.domain.manga.model.MangaCover import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.core.security.SecurityPreferences @@ -52,10 +51,11 @@ import eu.kanade.tachiyomi.util.Constants import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.system.dpToPx import kotlinx.coroutines.MainScope +import tachiyomi.data.DatabaseHandler +import tachiyomi.view.UpdatesView import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy -import view.UpdatesView import java.util.Calendar import java.util.Date 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 c54f78234..ad13c090a 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 @@ -1,6 +1,6 @@ package eu.kanade.tachiyomi.source.model -import data.Chapters +import tachiyomi.data.Chapters fun SChapter.copyFrom(other: Chapters) { name = other.name diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/model/SMangaExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/source/model/SMangaExtensions.kt index f719c9fbf..275d96ce0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/model/SMangaExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/model/SMangaExtensions.kt @@ -1,8 +1,8 @@ package eu.kanade.tachiyomi.source.model -import data.Mangas import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.download.DownloadManager +import tachiyomi.data.Mangas import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get @@ -31,7 +31,7 @@ fun SManga.copyFrom(other: Mangas) { } if (other.genre != null) { - genre = other.genre.joinToString(separator = ", ") + genre = other.genre!!.joinToString(separator = ", ") } if (other.thumbnail_url != null) { diff --git a/app/src/main/java/exh/EXHMigrations.kt b/app/src/main/java/exh/EXHMigrations.kt index cf81a6dcc..81f35e373 100644 --- a/app/src/main/java/exh/EXHMigrations.kt +++ b/app/src/main/java/exh/EXHMigrations.kt @@ -5,7 +5,6 @@ package exh import android.content.Context import androidx.core.content.edit import androidx.preference.PreferenceManager -import eu.kanade.data.DatabaseHandler import eu.kanade.data.category.categoryMapper import eu.kanade.data.chapter.chapterMapper import eu.kanade.domain.backup.service.BackupPreferences @@ -66,6 +65,7 @@ import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.contentOrNull import kotlinx.serialization.json.jsonArray import kotlinx.serialization.json.jsonPrimitive +import tachiyomi.data.DatabaseHandler import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy diff --git a/app/src/main/java/exh/debug/DebugFunctions.kt b/app/src/main/java/exh/debug/DebugFunctions.kt index d96b320f3..b201b3726 100644 --- a/app/src/main/java/exh/debug/DebugFunctions.kt +++ b/app/src/main/java/exh/debug/DebugFunctions.kt @@ -2,7 +2,6 @@ package exh.debug import android.app.Application import androidx.work.WorkManager -import eu.kanade.data.DatabaseHandler import eu.kanade.domain.backup.service.BackupPreferences import eu.kanade.domain.base.BasePreferences import eu.kanade.domain.library.service.LibraryPreferences @@ -32,6 +31,7 @@ import exh.source.nHentaiSourceIds import exh.util.jobScheduler import kotlinx.coroutines.runBlocking import kotlinx.serialization.protobuf.schema.ProtoBufSchemaGenerator +import tachiyomi.data.DatabaseHandler import uy.kohesive.injekt.injectLazy import java.util.UUID diff --git a/app/src/main/java/exh/source/SourceHelper.kt b/app/src/main/java/exh/source/SourceHelper.kt index 4a03fa9fd..c079c159e 100644 --- a/app/src/main/java/exh/source/SourceHelper.kt +++ b/app/src/main/java/exh/source/SourceHelper.kt @@ -1,6 +1,6 @@ package exh.source -import eu.kanade.tachiyomi.data.database.models.Manga +import eu.kanade.domain.manga.model.Manga import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.online.all.MangaDex @@ -9,22 +9,11 @@ import eu.kanade.tachiyomi.source.online.english.EightMuses import eu.kanade.tachiyomi.source.online.english.HBrowse import eu.kanade.tachiyomi.source.online.english.Pururin import eu.kanade.tachiyomi.source.online.english.Tsumino -import eu.kanade.domain.manga.model.Manga as DomainManga /** * Source helpers */ -// Lewd source IDs -const val LEWD_SOURCE_SERIES = 6900L -const val EH_SOURCE_ID = LEWD_SOURCE_SERIES + 1 -const val EXH_SOURCE_ID = LEWD_SOURCE_SERIES + 2 -const val PURURIN_SOURCE_ID = 2221515250486218861 -const val TSUMINO_SOURCE_ID = 6707338697138388238 -const val EIGHTMUSES_SOURCE_ID = 1802675169972965535 -const val HBROWSE_SOURCE_ID = 1401584337232758222 -const val MERGED_SOURCE_ID = LEWD_SOURCE_SERIES + 69 - private val DELEGATED_METADATA_SOURCES by lazy { listOf( Pururin::class, @@ -87,8 +76,6 @@ fun Source.isMdBasedSource() = id in mangaDexSourceIds fun Manga.isEhBasedManga() = source == EH_SOURCE_ID || source == EXH_SOURCE_ID -fun DomainManga.isEhBasedManga() = source == EH_SOURCE_ID || source == EXH_SOURCE_ID - fun Source.getMainSource(): Source = if (this is EnhancedHttpSource) { this.source() } else { diff --git a/data/.gitignore b/data/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/data/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/data/build.gradle.kts b/data/build.gradle.kts new file mode 100644 index 000000000..250b0a8b4 --- /dev/null +++ b/data/build.gradle.kts @@ -0,0 +1,27 @@ +plugins { + id("com.android.library") + kotlin("android") + id("com.squareup.sqldelight") +} + +android { + namespace = "tachiyomi.data" + + defaultConfig { + consumerProguardFiles("consumer-rules.pro") + } + + sqldelight { + database("Database") { + packageName = "tachiyomi.data" + dialect = "sqlite:3.24" + } + } +} + +dependencies { + implementation(project(":source-api")) + api(libs.sqldelight.android.driver) + api(libs.sqldelight.coroutines) + api(libs.sqldelight.android.paging) +} diff --git a/app/src/main/sqldelight/migrations/4.sqm b/data/consumer-rules.pro similarity index 100% rename from app/src/main/sqldelight/migrations/4.sqm rename to data/consumer-rules.pro diff --git a/data/proguard-rules.pro b/data/proguard-rules.pro new file mode 100644 index 000000000..481bb4348 --- /dev/null +++ b/data/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/data/src/main/AndroidManifest.xml b/data/src/main/AndroidManifest.xml new file mode 100644 index 000000000..a5918e68a --- /dev/null +++ b/data/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/java/eu/kanade/data/AndroidDatabaseHandler.kt b/data/src/main/java/tachiyomi/data/AndroidDatabaseHandler.kt similarity index 95% rename from app/src/main/java/eu/kanade/data/AndroidDatabaseHandler.kt rename to data/src/main/java/tachiyomi/data/AndroidDatabaseHandler.kt index a6dfdb339..e0f45a215 100644 --- a/app/src/main/java/eu/kanade/data/AndroidDatabaseHandler.kt +++ b/data/src/main/java/tachiyomi/data/AndroidDatabaseHandler.kt @@ -1,4 +1,4 @@ -package eu.kanade.data +package tachiyomi.data import androidx.paging.PagingSource import com.squareup.sqldelight.Query @@ -7,9 +7,6 @@ import com.squareup.sqldelight.runtime.coroutines.asFlow import com.squareup.sqldelight.runtime.coroutines.mapToList import com.squareup.sqldelight.runtime.coroutines.mapToOne import com.squareup.sqldelight.runtime.coroutines.mapToOneOrNull -import eu.kanade.data.manga.LibraryQuery -import eu.kanade.data.updates.UpdatesQuery -import eu.kanade.tachiyomi.Database import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.Flow diff --git a/app/src/main/java/eu/kanade/data/DatabaseAdapter.kt b/data/src/main/java/tachiyomi/data/DatabaseAdapter.kt similarity index 98% rename from app/src/main/java/eu/kanade/data/DatabaseAdapter.kt rename to data/src/main/java/tachiyomi/data/DatabaseAdapter.kt index 0464eb2db..b3176cb54 100644 --- a/app/src/main/java/eu/kanade/data/DatabaseAdapter.kt +++ b/data/src/main/java/tachiyomi/data/DatabaseAdapter.kt @@ -1,4 +1,4 @@ -package eu.kanade.data +package tachiyomi.data import com.squareup.sqldelight.ColumnAdapter import eu.kanade.tachiyomi.source.model.UpdateStrategy diff --git a/app/src/main/java/eu/kanade/data/DatabaseHandler.kt b/data/src/main/java/tachiyomi/data/DatabaseHandler.kt similarity index 94% rename from app/src/main/java/eu/kanade/data/DatabaseHandler.kt rename to data/src/main/java/tachiyomi/data/DatabaseHandler.kt index 99da8474d..a300256e0 100644 --- a/app/src/main/java/eu/kanade/data/DatabaseHandler.kt +++ b/data/src/main/java/tachiyomi/data/DatabaseHandler.kt @@ -1,8 +1,7 @@ -package eu.kanade.data +package tachiyomi.data import androidx.paging.PagingSource import com.squareup.sqldelight.Query -import eu.kanade.tachiyomi.Database import kotlinx.coroutines.flow.Flow interface DatabaseHandler { diff --git a/app/src/main/java/eu/kanade/data/manga/LibraryQuery.kt b/data/src/main/java/tachiyomi/data/LibraryQuery.kt similarity index 75% rename from app/src/main/java/eu/kanade/data/manga/LibraryQuery.kt rename to data/src/main/java/tachiyomi/data/LibraryQuery.kt index ac6efeed4..f67e5d58c 100644 --- a/app/src/main/java/eu/kanade/data/manga/LibraryQuery.kt +++ b/data/src/main/java/tachiyomi/data/LibraryQuery.kt @@ -1,40 +1,35 @@ -package eu.kanade.data.manga +package tachiyomi.data import com.squareup.sqldelight.Query import com.squareup.sqldelight.db.SqlCursor import com.squareup.sqldelight.db.SqlDriver import com.squareup.sqldelight.internal.copyOnWriteList -import eu.kanade.data.listOfStringsAdapter -import eu.kanade.data.listOfStringsAndAdapter -import eu.kanade.data.updateStrategyAdapter -import eu.kanade.domain.library.model.LibraryManga import exh.source.MERGED_SOURCE_ID +import tachiyomi.view.LibraryView private val mapper = { cursor: SqlCursor -> - LibraryManga( - manga = mangaMapper( - cursor.getLong(0)!!, - cursor.getLong(1)!!, - cursor.getString(2)!!, - cursor.getString(3), - cursor.getString(4), - cursor.getString(5), - cursor.getString(6)?.let(listOfStringsAdapter::decode), - cursor.getString(7)!!, - cursor.getLong(8)!!, - cursor.getString(9), - cursor.getLong(10)!! == 1L, - cursor.getLong(11) ?: 0, - null, - cursor.getLong(13)!! == 1L, - cursor.getLong(14)!!, - cursor.getLong(15)!!, - cursor.getLong(16)!!, - cursor.getLong(17)!!, - cursor.getString(18)?.let(listOfStringsAndAdapter::decode), - updateStrategyAdapter.decode(cursor.getLong(19)!!), - ), - totalChapters = cursor.getLong(20)!!, + LibraryView( + _id = cursor.getLong(0)!!, + source = cursor.getLong(1)!!, + url = cursor.getString(2)!!, + artist = cursor.getString(3), + author = cursor.getString(4), + description = cursor.getString(5), + genre = cursor.getString(6)?.let(listOfStringsAdapter::decode), + title = cursor.getString(7)!!, + status = cursor.getLong(8)!!, + thumbnail_url = cursor.getString(9), + favorite = cursor.getLong(10)!! == 1L, + last_update = cursor.getLong(11) ?: 0, + next_update = null, + initialized = cursor.getLong(13)!! == 1L, + viewer = cursor.getLong(14)!!, + 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)!!), + totalCount = cursor.getLong(20)!!, readCount = cursor.getLong(21)!!, latestUpload = cursor.getLong(22)!!, chapterFetchedAt = cursor.getLong(23)!!, @@ -44,7 +39,7 @@ private val mapper = { cursor: SqlCursor -> ) } -class LibraryQuery(val driver: SqlDriver) : Query(copyOnWriteList(), mapper) { +class LibraryQuery(val driver: SqlDriver) : Query(copyOnWriteList(), mapper) { override fun execute(): SqlCursor { return driver.executeQuery( null, diff --git a/app/src/main/java/eu/kanade/data/QueryPagingSource.kt b/data/src/main/java/tachiyomi/data/QueryPagingSource.kt similarity index 97% rename from app/src/main/java/eu/kanade/data/QueryPagingSource.kt rename to data/src/main/java/tachiyomi/data/QueryPagingSource.kt index cd80ace10..0d630c964 100644 --- a/app/src/main/java/eu/kanade/data/QueryPagingSource.kt +++ b/data/src/main/java/tachiyomi/data/QueryPagingSource.kt @@ -1,9 +1,8 @@ -package eu.kanade.data +package tachiyomi.data import androidx.paging.PagingSource import androidx.paging.PagingState import com.squareup.sqldelight.Query -import eu.kanade.tachiyomi.Database import kotlin.properties.Delegates class QueryPagingSource( diff --git a/app/src/main/java/eu/kanade/data/TransactionContext.kt b/data/src/main/java/tachiyomi/data/TransactionContext.kt similarity index 99% rename from app/src/main/java/eu/kanade/data/TransactionContext.kt rename to data/src/main/java/tachiyomi/data/TransactionContext.kt index 34990576c..63a2b7519 100644 --- a/app/src/main/java/eu/kanade/data/TransactionContext.kt +++ b/data/src/main/java/tachiyomi/data/TransactionContext.kt @@ -1,4 +1,4 @@ -package eu.kanade.data +package tachiyomi.data import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.Job diff --git a/app/src/main/java/eu/kanade/data/updates/UpdatesQuery.kt b/data/src/main/java/tachiyomi/data/UpdatesQuery.kt similarity index 94% rename from app/src/main/java/eu/kanade/data/updates/UpdatesQuery.kt rename to data/src/main/java/tachiyomi/data/UpdatesQuery.kt index 4e75788a0..5b2c0407d 100644 --- a/app/src/main/java/eu/kanade/data/updates/UpdatesQuery.kt +++ b/data/src/main/java/tachiyomi/data/UpdatesQuery.kt @@ -1,14 +1,14 @@ -package eu.kanade.data.updates +package tachiyomi.data import com.squareup.sqldelight.Query import com.squareup.sqldelight.db.SqlCursor import com.squareup.sqldelight.db.SqlDriver import com.squareup.sqldelight.internal.copyOnWriteList -import eu.kanade.domain.updates.model.UpdatesWithRelations import exh.source.MERGED_SOURCE_ID +import tachiyomi.view.UpdatesView private val mapper = { cursor: SqlCursor -> - updateWithRelationMapper( + UpdatesView( cursor.getLong(0)!!, cursor.getString(1)!!, cursor.getLong(2)!!, @@ -26,7 +26,7 @@ private val mapper = { cursor: SqlCursor -> ) } -class UpdatesQuery(val driver: SqlDriver, val after: Long) : Query(copyOnWriteList(), mapper) { +class UpdatesQuery(val driver: SqlDriver, val after: Long) : Query(copyOnWriteList(), mapper) { override fun execute(): SqlCursor { return driver.executeQuery( null, diff --git a/app/src/main/sqldelight/data/categories.sq b/data/src/main/sqldelight/tachiyomi/data/categories.sq similarity index 100% rename from app/src/main/sqldelight/data/categories.sq rename to data/src/main/sqldelight/tachiyomi/data/categories.sq diff --git a/app/src/main/sqldelight/data/chapters.sq b/data/src/main/sqldelight/tachiyomi/data/chapters.sq similarity index 100% rename from app/src/main/sqldelight/data/chapters.sq rename to data/src/main/sqldelight/tachiyomi/data/chapters.sq diff --git a/app/src/main/sqldelight/data/eh.sq b/data/src/main/sqldelight/tachiyomi/data/eh.sq similarity index 100% rename from app/src/main/sqldelight/data/eh.sq rename to data/src/main/sqldelight/tachiyomi/data/eh.sq diff --git a/app/src/main/sqldelight/data/eh_favorites.sq b/data/src/main/sqldelight/tachiyomi/data/eh_favorites.sq similarity index 100% rename from app/src/main/sqldelight/data/eh_favorites.sq rename to data/src/main/sqldelight/tachiyomi/data/eh_favorites.sq diff --git a/app/src/main/sqldelight/data/feed_saved_search.sq b/data/src/main/sqldelight/tachiyomi/data/feed_saved_search.sq similarity index 100% rename from app/src/main/sqldelight/data/feed_saved_search.sq rename to data/src/main/sqldelight/tachiyomi/data/feed_saved_search.sq diff --git a/app/src/main/sqldelight/data/history.sq b/data/src/main/sqldelight/tachiyomi/data/history.sq similarity index 100% rename from app/src/main/sqldelight/data/history.sq rename to data/src/main/sqldelight/tachiyomi/data/history.sq diff --git a/app/src/main/sqldelight/data/manga_sync.sq b/data/src/main/sqldelight/tachiyomi/data/manga_sync.sq similarity index 100% rename from app/src/main/sqldelight/data/manga_sync.sq rename to data/src/main/sqldelight/tachiyomi/data/manga_sync.sq diff --git a/app/src/main/sqldelight/data/mangas.sq b/data/src/main/sqldelight/tachiyomi/data/mangas.sq similarity index 100% rename from app/src/main/sqldelight/data/mangas.sq rename to data/src/main/sqldelight/tachiyomi/data/mangas.sq diff --git a/app/src/main/sqldelight/data/mangas_categories.sq b/data/src/main/sqldelight/tachiyomi/data/mangas_categories.sq similarity index 100% rename from app/src/main/sqldelight/data/mangas_categories.sq rename to data/src/main/sqldelight/tachiyomi/data/mangas_categories.sq diff --git a/app/src/main/sqldelight/data/merged.sq b/data/src/main/sqldelight/tachiyomi/data/merged.sq similarity index 100% rename from app/src/main/sqldelight/data/merged.sq rename to data/src/main/sqldelight/tachiyomi/data/merged.sq diff --git a/app/src/main/sqldelight/data/saved_search.sq b/data/src/main/sqldelight/tachiyomi/data/saved_search.sq similarity index 100% rename from app/src/main/sqldelight/data/saved_search.sq rename to data/src/main/sqldelight/tachiyomi/data/saved_search.sq diff --git a/app/src/main/sqldelight/data/search_metadata.sq b/data/src/main/sqldelight/tachiyomi/data/search_metadata.sq similarity index 100% rename from app/src/main/sqldelight/data/search_metadata.sq rename to data/src/main/sqldelight/tachiyomi/data/search_metadata.sq diff --git a/app/src/main/sqldelight/data/search_tags.sq b/data/src/main/sqldelight/tachiyomi/data/search_tags.sq similarity index 100% rename from app/src/main/sqldelight/data/search_tags.sq rename to data/src/main/sqldelight/tachiyomi/data/search_tags.sq diff --git a/app/src/main/sqldelight/data/search_titles.sq b/data/src/main/sqldelight/tachiyomi/data/search_titles.sq similarity index 100% rename from app/src/main/sqldelight/data/search_titles.sq rename to data/src/main/sqldelight/tachiyomi/data/search_titles.sq diff --git a/app/src/main/sqldelight/data/sources.sq b/data/src/main/sqldelight/tachiyomi/data/sources.sq similarity index 100% rename from app/src/main/sqldelight/data/sources.sq rename to data/src/main/sqldelight/tachiyomi/data/sources.sq diff --git a/app/src/main/sqldelight/migrations/1.sqm b/data/src/main/sqldelight/tachiyomi/migrations/1.sqm similarity index 100% rename from app/src/main/sqldelight/migrations/1.sqm rename to data/src/main/sqldelight/tachiyomi/migrations/1.sqm diff --git a/app/src/main/sqldelight/migrations/10.sqm b/data/src/main/sqldelight/tachiyomi/migrations/10.sqm similarity index 100% rename from app/src/main/sqldelight/migrations/10.sqm rename to data/src/main/sqldelight/tachiyomi/migrations/10.sqm diff --git a/app/src/main/sqldelight/migrations/11.sqm b/data/src/main/sqldelight/tachiyomi/migrations/11.sqm similarity index 100% rename from app/src/main/sqldelight/migrations/11.sqm rename to data/src/main/sqldelight/tachiyomi/migrations/11.sqm diff --git a/app/src/main/sqldelight/migrations/12.sqm b/data/src/main/sqldelight/tachiyomi/migrations/12.sqm similarity index 100% rename from app/src/main/sqldelight/migrations/12.sqm rename to data/src/main/sqldelight/tachiyomi/migrations/12.sqm diff --git a/app/src/main/sqldelight/migrations/13.sqm b/data/src/main/sqldelight/tachiyomi/migrations/13.sqm similarity index 100% rename from app/src/main/sqldelight/migrations/13.sqm rename to data/src/main/sqldelight/tachiyomi/migrations/13.sqm diff --git a/app/src/main/sqldelight/migrations/14.sqm b/data/src/main/sqldelight/tachiyomi/migrations/14.sqm similarity index 100% rename from app/src/main/sqldelight/migrations/14.sqm rename to data/src/main/sqldelight/tachiyomi/migrations/14.sqm diff --git a/app/src/main/sqldelight/migrations/15.sqm b/data/src/main/sqldelight/tachiyomi/migrations/15.sqm similarity index 100% rename from app/src/main/sqldelight/migrations/15.sqm rename to data/src/main/sqldelight/tachiyomi/migrations/15.sqm diff --git a/app/src/main/sqldelight/migrations/17.sqm b/data/src/main/sqldelight/tachiyomi/migrations/17.sqm similarity index 100% rename from app/src/main/sqldelight/migrations/17.sqm rename to data/src/main/sqldelight/tachiyomi/migrations/17.sqm diff --git a/app/src/main/sqldelight/migrations/18.sqm b/data/src/main/sqldelight/tachiyomi/migrations/18.sqm similarity index 100% rename from app/src/main/sqldelight/migrations/18.sqm rename to data/src/main/sqldelight/tachiyomi/migrations/18.sqm diff --git a/app/src/main/sqldelight/migrations/19.sqm b/data/src/main/sqldelight/tachiyomi/migrations/19.sqm similarity index 100% rename from app/src/main/sqldelight/migrations/19.sqm rename to data/src/main/sqldelight/tachiyomi/migrations/19.sqm diff --git a/app/src/main/sqldelight/migrations/2.sqm b/data/src/main/sqldelight/tachiyomi/migrations/2.sqm similarity index 100% rename from app/src/main/sqldelight/migrations/2.sqm rename to data/src/main/sqldelight/tachiyomi/migrations/2.sqm diff --git a/app/src/main/sqldelight/migrations/20.sqm b/data/src/main/sqldelight/tachiyomi/migrations/20.sqm similarity index 100% rename from app/src/main/sqldelight/migrations/20.sqm rename to data/src/main/sqldelight/tachiyomi/migrations/20.sqm diff --git a/app/src/main/sqldelight/migrations/21.sqm b/data/src/main/sqldelight/tachiyomi/migrations/21.sqm similarity index 100% rename from app/src/main/sqldelight/migrations/21.sqm rename to data/src/main/sqldelight/tachiyomi/migrations/21.sqm diff --git a/app/src/main/sqldelight/migrations/22.sqm b/data/src/main/sqldelight/tachiyomi/migrations/22.sqm similarity index 100% rename from app/src/main/sqldelight/migrations/22.sqm rename to data/src/main/sqldelight/tachiyomi/migrations/22.sqm diff --git a/app/src/main/sqldelight/migrations/23.sqm b/data/src/main/sqldelight/tachiyomi/migrations/23.sqm similarity index 100% rename from app/src/main/sqldelight/migrations/23.sqm rename to data/src/main/sqldelight/tachiyomi/migrations/23.sqm diff --git a/app/src/main/sqldelight/migrations/24.sqm b/data/src/main/sqldelight/tachiyomi/migrations/24.sqm similarity index 100% rename from app/src/main/sqldelight/migrations/24.sqm rename to data/src/main/sqldelight/tachiyomi/migrations/24.sqm diff --git a/app/src/main/sqldelight/migrations/3.sqm b/data/src/main/sqldelight/tachiyomi/migrations/3.sqm similarity index 100% rename from app/src/main/sqldelight/migrations/3.sqm rename to data/src/main/sqldelight/tachiyomi/migrations/3.sqm diff --git a/data/src/main/sqldelight/tachiyomi/migrations/4.sqm b/data/src/main/sqldelight/tachiyomi/migrations/4.sqm new file mode 100644 index 000000000..e69de29bb diff --git a/app/src/main/sqldelight/migrations/5.sqm b/data/src/main/sqldelight/tachiyomi/migrations/5.sqm similarity index 100% rename from app/src/main/sqldelight/migrations/5.sqm rename to data/src/main/sqldelight/tachiyomi/migrations/5.sqm diff --git a/app/src/main/sqldelight/migrations/6.sqm b/data/src/main/sqldelight/tachiyomi/migrations/6.sqm similarity index 100% rename from app/src/main/sqldelight/migrations/6.sqm rename to data/src/main/sqldelight/tachiyomi/migrations/6.sqm diff --git a/app/src/main/sqldelight/migrations/7.sqm b/data/src/main/sqldelight/tachiyomi/migrations/7.sqm similarity index 100% rename from app/src/main/sqldelight/migrations/7.sqm rename to data/src/main/sqldelight/tachiyomi/migrations/7.sqm diff --git a/app/src/main/sqldelight/migrations/8.sqm b/data/src/main/sqldelight/tachiyomi/migrations/8.sqm similarity index 100% rename from app/src/main/sqldelight/migrations/8.sqm rename to data/src/main/sqldelight/tachiyomi/migrations/8.sqm diff --git a/app/src/main/sqldelight/migrations/9.sqm b/data/src/main/sqldelight/tachiyomi/migrations/9.sqm similarity index 100% rename from app/src/main/sqldelight/migrations/9.sqm rename to data/src/main/sqldelight/tachiyomi/migrations/9.sqm diff --git a/app/src/main/sqldelight/view/historyView.sq b/data/src/main/sqldelight/tachiyomi/view/historyView.sq similarity index 100% rename from app/src/main/sqldelight/view/historyView.sq rename to data/src/main/sqldelight/tachiyomi/view/historyView.sq diff --git a/app/src/main/sqldelight/view/libraryView.sq b/data/src/main/sqldelight/tachiyomi/view/libraryView.sq similarity index 100% rename from app/src/main/sqldelight/view/libraryView.sq rename to data/src/main/sqldelight/tachiyomi/view/libraryView.sq diff --git a/app/src/main/sqldelight/view/updatesView.sq b/data/src/main/sqldelight/tachiyomi/view/updatesView.sq similarity index 100% rename from app/src/main/sqldelight/view/updatesView.sq rename to data/src/main/sqldelight/tachiyomi/view/updatesView.sq diff --git a/settings.gradle.kts b/settings.gradle.kts index 8cd45aa7c..448eb1f6f 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -44,3 +44,4 @@ include(":i18n") include(":source-api") include(":core") include(":macrobenchmark") +include(":data") diff --git a/source-api/src/main/java/exh/source/SourceIds.kt b/source-api/src/main/java/exh/source/SourceIds.kt new file mode 100644 index 000000000..a3c1c9799 --- /dev/null +++ b/source-api/src/main/java/exh/source/SourceIds.kt @@ -0,0 +1,11 @@ +package exh.source + +// Lewd source IDs +const val LEWD_SOURCE_SERIES = 6900L +const val EH_SOURCE_ID = LEWD_SOURCE_SERIES + 1 +const val EXH_SOURCE_ID = LEWD_SOURCE_SERIES + 2 +const val PURURIN_SOURCE_ID = 2221515250486218861 +const val TSUMINO_SOURCE_ID = 6707338697138388238 +const val EIGHTMUSES_SOURCE_ID = 1802675169972965535 +const val HBROWSE_SOURCE_ID = 1401584337232758222 +const val MERGED_SOURCE_ID = LEWD_SOURCE_SERIES + 69