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 abc43da56..b16fdd230 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 @@ -75,6 +75,7 @@ class FullBackupManager(context: Context) : AbstractBackupManager(context) { backup = Backup( backupManga(databaseManga, flags), backupCategories(), + emptyList(), backupExtensionInfo(databaseManga), backupSavedSearches() ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/FullBackupRestore.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/FullBackupRestore.kt index 19580ad8d..8c7267ed5 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/FullBackupRestore.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/FullBackupRestore.kt @@ -12,6 +12,7 @@ import eu.kanade.tachiyomi.data.backup.full.models.BackupManga import eu.kanade.tachiyomi.data.backup.full.models.BackupMergedMangaReference import eu.kanade.tachiyomi.data.backup.full.models.BackupSavedSearch import eu.kanade.tachiyomi.data.backup.full.models.BackupSerializer +import eu.kanade.tachiyomi.data.backup.full.models.BackupSource import eu.kanade.tachiyomi.data.database.models.Chapter import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.Track @@ -48,7 +49,8 @@ class FullBackupRestore(context: Context, notifier: BackupNotifier) : AbstractBa // SY <-- // Store source mapping for error messages - sourceMapping = backup.backupSources.map { it.sourceId to it.name }.toMap() + var backupMaps = backup.backupBrokenSources.map { BackupSource(it.name, it.sourceId) } + backup.backupSources + sourceMapping = backupMaps.map { it.sourceId to it.name }.toMap() // Restore individual manga, sort by merged source so that merged source manga go last and merged references get the proper ids backup.backupManga /* SY --> */.sortedBy { it.source == MERGED_SOURCE_ID } /* SY <-- */.forEach { @@ -86,7 +88,7 @@ class FullBackupRestore(context: Context, notifier: BackupNotifier) : AbstractBa val manga = backupManga.getMangaImpl() val chapters = backupManga.getChaptersImpl() val categories = backupManga.categories - val history = backupManga.history + val history = backupManga.brokenHistory.map { BackupHistory(it.url, it.lastRead) } + backupManga.history val tracks = backupManga.getTrackingImpl() // SY --> val mergedMangaReferences = backupManga.mergedMangaReferences diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/Backup.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/Backup.kt index da0a26063..d8514a594 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/Backup.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/Backup.kt @@ -8,7 +8,8 @@ data class Backup( @ProtoNumber(1) val backupManga: List, @ProtoNumber(2) var backupCategories: List = emptyList(), // Bump by 100 to specify this is a 0.x value - @ProtoNumber(100) var backupSources: List = emptyList(), + @ProtoNumber(100) var backupBrokenSources: List = emptyList(), + @ProtoNumber(101) var backupSources: List = emptyList(), // SY specific values @ProtoNumber(600) var backupSavedSearches: List = emptyList() ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/BackupHistory.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/BackupHistory.kt index 3cbfbc622..98b415e60 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/BackupHistory.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/BackupHistory.kt @@ -4,7 +4,13 @@ import kotlinx.serialization.Serializable import kotlinx.serialization.protobuf.ProtoNumber @Serializable -data class BackupHistory( +data class BrokenBackupHistory( @ProtoNumber(0) var url: String, @ProtoNumber(1) var lastRead: Long ) + +@Serializable +data class BackupHistory( + @ProtoNumber(1) var url: String, + @ProtoNumber(2) var lastRead: Long +) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/BackupManga.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/BackupManga.kt index 9c67d95b4..3ddfa93c3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/BackupManga.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/BackupManga.kt @@ -34,8 +34,9 @@ data class BackupManga( // Bump by 100 for values that are not saved/implemented in 1.x but are used in 0.x @ProtoNumber(100) var favorite: Boolean = true, @ProtoNumber(101) var chapterFlags: Int = 0, - @ProtoNumber(102) var history: List = emptyList(), + @ProtoNumber(102) var brokenHistory: List = emptyList(), @ProtoNumber(103) var viewer_flags: Int? = null, + @ProtoNumber(104) var history: List = emptyList(), // SY specific values @ProtoNumber(600) var mergedMangaReferences: List = emptyList(), diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/BackupSource.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/BackupSource.kt index 78b993373..a8c12f584 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/BackupSource.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/BackupSource.kt @@ -5,9 +5,15 @@ import kotlinx.serialization.Serializable import kotlinx.serialization.protobuf.ProtoNumber @Serializable -data class BackupSource( +data class BrokenBackupSource( @ProtoNumber(0) var name: String = "", @ProtoNumber(1) var sourceId: Long +) + +@Serializable +data class BackupSource( + @ProtoNumber(1) var name: String = "", + @ProtoNumber(2) var sourceId: Long ) { companion object { fun copyFrom(source: Source): BackupSource {