|
@@ -24,6 +24,7 @@ import eu.kanade.tachiyomi.data.backup.models.Backup
|
|
|
import eu.kanade.tachiyomi.data.backup.models.Backup.CATEGORIES
|
|
|
import eu.kanade.tachiyomi.data.backup.models.Backup.CHAPTERS
|
|
|
import eu.kanade.tachiyomi.data.backup.models.Backup.CURRENT_VERSION
|
|
|
+import eu.kanade.tachiyomi.data.backup.models.Backup.EXTENSIONS
|
|
|
import eu.kanade.tachiyomi.data.backup.models.Backup.HISTORY
|
|
|
import eu.kanade.tachiyomi.data.backup.models.Backup.MANGA
|
|
|
import eu.kanade.tachiyomi.data.backup.models.Backup.TRACK
|
|
@@ -110,24 +111,38 @@ class BackupManager(val context: Context, version: Int = CURRENT_VERSION) {
|
|
|
// Create category array
|
|
|
val categoryEntries = JsonArray()
|
|
|
|
|
|
+ // Create extension ID/name mapping
|
|
|
+ val extensionEntries = JsonArray()
|
|
|
+
|
|
|
// Add value's to root
|
|
|
root[Backup.VERSION] = CURRENT_VERSION
|
|
|
root[Backup.MANGAS] = mangaEntries
|
|
|
root[CATEGORIES] = categoryEntries
|
|
|
+ root[EXTENSIONS] = extensionEntries
|
|
|
|
|
|
databaseHelper.inTransaction {
|
|
|
// Get manga from database
|
|
|
val mangas = getFavoriteManga()
|
|
|
|
|
|
+ val extensions: MutableSet<String> = mutableSetOf()
|
|
|
+
|
|
|
// Backup library manga and its dependencies
|
|
|
mangas.forEach { manga ->
|
|
|
mangaEntries.add(backupMangaObject(manga, flags))
|
|
|
+
|
|
|
+ // Maintain set of extensions/sources used (excludes local source)
|
|
|
+ if (manga.source != 0L) {
|
|
|
+ extensions.add("${manga.source}:${sourceManager.get(manga.source)!!.name}")
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// Backup categories
|
|
|
if ((flags and BACKUP_CATEGORY_MASK) == BACKUP_CATEGORY) {
|
|
|
backupCategories(categoryEntries)
|
|
|
}
|
|
|
+
|
|
|
+ // Backup extension ID/name mapping
|
|
|
+ backupExtensionInfo(extensionEntries, extensions)
|
|
|
}
|
|
|
|
|
|
try {
|
|
@@ -170,6 +185,12 @@ class BackupManager(val context: Context, version: Int = CURRENT_VERSION) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private fun backupExtensionInfo(root: JsonArray, extensions: Set<String>) {
|
|
|
+ extensions.sorted().forEach {
|
|
|
+ root.add(it)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* Backup the categories of library
|
|
|
*
|