diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/FullBackupManager.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/FullBackupManager.kt index b24654c16..333071fd3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/FullBackupManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/FullBackupManager.kt @@ -23,16 +23,12 @@ import eu.kanade.tachiyomi.data.backup.full.models.BackupSerializer import eu.kanade.tachiyomi.data.backup.full.models.BackupSource import eu.kanade.tachiyomi.data.backup.full.models.BackupTracking import eu.kanade.tachiyomi.data.backup.models.AbstractBackupManager -import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.Chapter import eu.kanade.tachiyomi.data.database.models.History import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.MangaCategory import eu.kanade.tachiyomi.data.database.models.Track -import eu.kanade.tachiyomi.data.preference.PreferencesHelper -import eu.kanade.tachiyomi.data.track.TrackManager import eu.kanade.tachiyomi.source.Source -import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.online.all.EHentai import eu.kanade.tachiyomi.source.online.all.MergedSource import eu.kanade.tachiyomi.util.chapter.syncChaptersWithSource @@ -49,11 +45,10 @@ import okio.gzip import okio.sink import rx.Observable import timber.log.Timber -import uy.kohesive.injekt.injectLazy import kotlin.math.max @OptIn(ExperimentalSerializationApi::class) -class FullBackupManager(val context: Context) : AbstractBackupManager() { +class FullBackupManager(context: Context) : AbstractBackupManager(context) { /** * Parser */ @@ -562,59 +557,4 @@ class FullBackupManager(val context: Context) : AbstractBackupManager() { } } // SY <-- - - /** - * Returns manga - * - * @return [Manga], null if not found - */ - internal fun getMangaFromDatabase(manga: Manga): Manga? = - databaseHelper.getManga(manga.url, manga.source).executeAsBlocking() - - /** - * Returns list containing manga from library - * - * @return [Manga] from library - */ - private fun getFavoriteManga(): List = - databaseHelper.getFavoriteMangas().executeAsBlocking() - - // SY --> - /** - * Returns list containing merged manga that are possibly not in the library - * - * @return merged [Manga] that are possibly not in the library - */ - private fun getMergedManga(): List = - databaseHelper.getMergedMangas().executeAsBlocking() - // SY <-- - - /** - * Inserts manga and returns id - * - * @return id of [Manga], null if not found - */ - internal fun insertManga(manga: Manga): Long? = - databaseHelper.insertManga(manga).executeAsBlocking().insertedId() - - /** - * Inserts list of chapters - */ - private fun insertChapters(chapters: List) { - databaseHelper.insertChapters(chapters).executeAsBlocking() - } - - /** - * Updates a list of chapters - */ - private fun updateChapters(chapters: List) { - databaseHelper.updateChaptersBackup(chapters).executeAsBlocking() - } - - /** - * Return number of backups. - * - * @return number of backups selected by user - */ - fun numberOfBackups(): Int = preferences.numberOfBackups().get() } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/legacy/LegacyBackupManager.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/legacy/LegacyBackupManager.kt index 88f886448..48073da54 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/legacy/LegacyBackupManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/legacy/LegacyBackupManager.kt @@ -39,7 +39,6 @@ import eu.kanade.tachiyomi.data.backup.legacy.serializer.MangaTypeAdapter import eu.kanade.tachiyomi.data.backup.legacy.serializer.MergedMangaReferenceTypeAdapter import eu.kanade.tachiyomi.data.backup.legacy.serializer.TrackTypeAdapter import eu.kanade.tachiyomi.data.backup.models.AbstractBackupManager -import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.CategoryImpl import eu.kanade.tachiyomi.data.database.models.Chapter import eu.kanade.tachiyomi.data.database.models.ChapterImpl @@ -50,10 +49,8 @@ import eu.kanade.tachiyomi.data.database.models.MangaImpl import eu.kanade.tachiyomi.data.database.models.Track import eu.kanade.tachiyomi.data.database.models.TrackImpl import eu.kanade.tachiyomi.data.preference.PreferencesHelper -import eu.kanade.tachiyomi.data.track.TrackManager import eu.kanade.tachiyomi.source.LocalSource import eu.kanade.tachiyomi.source.Source -import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.online.all.EHentai import eu.kanade.tachiyomi.source.online.all.MergedSource import eu.kanade.tachiyomi.util.chapter.syncChaptersWithSource @@ -71,11 +68,10 @@ import rx.Observable import timber.log.Timber import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get -import uy.kohesive.injekt.injectLazy import java.lang.RuntimeException import kotlin.math.max -class LegacyBackupManager(val context: Context, version: Int = CURRENT_VERSION) : AbstractBackupManager() { +class LegacyBackupManager(context: Context, version: Int = CURRENT_VERSION) : AbstractBackupManager(context) { /** * Version of parser */ @@ -631,45 +627,4 @@ class LegacyBackupManager(val context: Context, version: Int = CURRENT_VERSION) } } // SY <-- - - /** - * Returns manga - * - * @return [Manga], null if not found - */ - internal fun getMangaFromDatabase(manga: Manga): Manga? = - databaseHelper.getManga(manga.url, manga.source).executeAsBlocking() - - /** - * Returns list containing manga from library - * - * @return [Manga] from library - */ - internal fun getFavoriteManga(): List = - databaseHelper.getFavoriteMangas().executeAsBlocking() - - internal fun getMergedManga(): List = - databaseHelper.getMergedMangas().executeAsBlocking() - - /** - * Inserts manga and returns id - * - * @return id of [Manga], null if not found - */ - internal fun insertManga(manga: Manga): Long? = - databaseHelper.insertManga(manga).executeAsBlocking().insertedId() - - /** - * Inserts list of chapters - */ - private fun insertChapters(chapters: List) { - databaseHelper.updateChaptersBackup(chapters).executeAsBlocking() - } - - /** - * Return number of backups. - * - * @return number of backups selected by user - */ - fun numberOfBackups(): Int = preferences.numberOfBackups().get() } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/AbstractBackupManager.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/AbstractBackupManager.kt index 0c5b5e2f5..eaaffeeee 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/AbstractBackupManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/AbstractBackupManager.kt @@ -1,17 +1,75 @@ package eu.kanade.tachiyomi.data.backup.models +import android.content.Context import android.net.Uri import eu.kanade.tachiyomi.data.database.DatabaseHelper +import eu.kanade.tachiyomi.data.database.models.Chapter +import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.track.TrackManager import eu.kanade.tachiyomi.source.SourceManager import uy.kohesive.injekt.injectLazy -abstract class AbstractBackupManager { +abstract class AbstractBackupManager(protected val context: Context) { internal val databaseHelper: DatabaseHelper by injectLazy() internal val sourceManager: SourceManager by injectLazy() internal val trackManager: TrackManager by injectLazy() protected val preferences: PreferencesHelper by injectLazy() abstract fun createBackup(uri: Uri, flags: Int, isJob: Boolean): String? + + /** + * Returns manga + * + * @return [Manga], null if not found + */ + internal fun getMangaFromDatabase(manga: Manga): Manga? = + databaseHelper.getManga(manga.url, manga.source).executeAsBlocking() + + /** + * Returns list containing manga from library + * + * @return [Manga] from library + */ + protected fun getFavoriteManga(): List = + databaseHelper.getFavoriteMangas().executeAsBlocking() + + // SY --> + /** + * Returns list containing merged manga that are possibly not in the library + * + * @return merged [Manga] that are possibly not in the library + */ + protected fun getMergedManga(): List = + databaseHelper.getMergedMangas().executeAsBlocking() + // SY <-- + + /** + * Inserts manga and returns id + * + * @return id of [Manga], null if not found + */ + internal fun insertManga(manga: Manga): Long? = + databaseHelper.insertManga(manga).executeAsBlocking().insertedId() + + /** + * Inserts list of chapters + */ + protected fun insertChapters(chapters: List) { + databaseHelper.insertChapters(chapters).executeAsBlocking() + } + + /** + * Updates a list of chapters + */ + protected fun updateChapters(chapters: List) { + databaseHelper.updateChaptersBackup(chapters).executeAsBlocking() + } + + /** + * Return number of backups. + * + * @return number of backups selected by user + */ + protected fun numberOfBackups(): Int = preferences.numberOfBackups().get() }